Face Generation

In this project, you'll use generative adversarial networks to generate new images of faces.

Get the Data

You'll be using two datasets in this project:

  • MNIST
  • CelebA

Since the celebA dataset is complex and you're doing GANs in a project for the first time, we want you to test your neural network on MNIST before CelebA. Running the GANs on MNIST will allow you to see how well your model trains sooner.

If you're using FloydHub, set data_dir to "/input" and use the FloydHub data ID "R5KrjnANiKVhLWAkpXhNBe".

In [1]:
data_dir = './data'

# FloydHub - Use with data ID "R5KrjnANiKVhLWAkpXhNBe"
#data_dir = '/input'


"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
import helper

helper.download_extract('mnist', data_dir)
helper.download_extract('celeba', data_dir)
Found mnist Data
Found celeba Data

Explore the Data

MNIST

As you're aware, the MNIST dataset contains images of handwritten digits. You can view the first number of examples by changing show_n_images.

In [2]:
show_n_images = 25

"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
%matplotlib inline
import os
from glob import glob
from matplotlib import pyplot

mnist_images = helper.get_batch(glob(os.path.join(data_dir, 'mnist/*.jpg'))[:show_n_images], 28, 28, 'L')
pyplot.imshow(helper.images_square_grid(mnist_images, 'L'), cmap='gray')
Out[2]:
<matplotlib.image.AxesImage at 0x116cb0160>

CelebA

The CelebFaces Attributes Dataset (CelebA) dataset contains over 200,000 celebrity images with annotations. Since you're going to be generating faces, you won't need the annotations. You can view the first number of examples by changing show_n_images.

In [3]:
show_n_images = 25

"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
mnist_images = helper.get_batch(glob(os.path.join(data_dir, 'img_align_celeba/*.jpg'))[:show_n_images], 28, 28, 'RGB')
pyplot.imshow(helper.images_square_grid(mnist_images, 'RGB'))
Out[3]:
<matplotlib.image.AxesImage at 0x11a925be0>

Preprocess the Data

Since the project's main focus is on building the GANs, we'll preprocess the data for you. The values of the MNIST and CelebA dataset will be in the range of -0.5 to 0.5 of 28x28 dimensional images. The CelebA images will be cropped to remove parts of the image that don't include a face, then resized down to 28x28.

The MNIST images are black and white images with a single color channel while the CelebA images have 3 color channels (RGB color channel).

Build the Neural Network

You'll build the components necessary to build a GANs by implementing the following functions below:

  • model_inputs
  • discriminator
  • generator
  • model_loss
  • model_opt
  • train

Check the Version of TensorFlow and Access to GPU

This will check to make sure you have the correct version of TensorFlow and access to a GPU

In [4]:
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
from distutils.version import LooseVersion
import warnings
import tensorflow as tf

# Check TensorFlow Version
assert LooseVersion(tf.__version__) >= LooseVersion('1.0'), 'Please use TensorFlow version 1.0 or newer.  You are using {}'.format(tf.__version__)
print('TensorFlow Version: {}'.format(tf.__version__))

# Check for a GPU
if not tf.test.gpu_device_name():
    warnings.warn('No GPU found. Please use a GPU to train your neural network.')
else:
    print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))
TensorFlow Version: 1.0.0
/Users/tapanm01/anaconda2/envs/dog-project/lib/python3.5/site-packages/ipykernel/__main__.py:14: UserWarning: No GPU found. Please use a GPU to train your neural network.

Input

Implement the model_inputs function to create TF Placeholders for the Neural Network. It should create the following placeholders:

  • Real input images placeholder with rank 4 using image_width, image_height, and image_channels.
  • Z input placeholder with rank 2 using z_dim.
  • Learning rate placeholder with rank 0.

Return the placeholders in the following the tuple (tensor of real input images, tensor of z data)

In [5]:
import problem_unittests as tests

def model_inputs(image_width, image_height, image_channels, z_dim):
    """
    Create the model inputs
    :param image_width: The input image width
    :param image_height: The input image height
    :param image_channels: The number of image channels
    :param z_dim: The dimension of Z
    :return: Tuple of (tensor of real input images, tensor of z data, learning rate)
    """
    # TODO: Implement Function
    input_real = tf.placeholder(tf.float32, (None, image_width, image_height, image_channels), name='Real_Input')
    input_z = tf.placeholder(tf.float32, (None, z_dim), name='Z_input')
    learning_rate = tf.placeholder(tf.float32, name='Learning_Rate')

    return input_real, input_z, learning_rate

"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_inputs(model_inputs)
Tests Passed

Discriminator

Implement discriminator to create a discriminator neural network that discriminates on images. This function should be able to reuse the variables in the neural network. Use tf.variable_scope with a scope name of "discriminator" to allow the variables to be reused. The function should return a tuple of (tensor output of the discriminator, tensor logits of the discriminator).

In [15]:
def discriminator(images, reuse=False):
    """
    Create the discriminator network
    :param images: Tensor of input image(s)
    :param reuse: Boolean if the weights should be reused
    :return: Tuple of (tensor output of the discriminator, tensor logits of the discriminator)
    """
    # TODO: Implement Function
    with tf.variable_scope('discriminator', reuse=reuse):
        # Input layer is 28x28x3
        x1 = tf.layers.conv2d(images, filters=64, kernel_size=5, strides=2, padding='same', kernel_initializer=tf.contrib.layers.xavier_initializer())
        relu1 = tf.maximum(0.2 * x1, x1)
        relu1 = tf.nn.dropout(relu1,0.9)
        # 14x14x64
        
        x2 = tf.layers.conv2d(relu1, filters=128, kernel_size=5, strides=2, padding='same', kernel_initializer=tf.contrib.layers.xavier_initializer())
        bn2 = tf.layers.batch_normalization(x2, training=True)
        relu2 = tf.maximum(0.2 * bn2, bn2)
        relu2 = tf.nn.dropout(relu2,0.9)

        # 7x7x128
        
        x3 = tf.layers.conv2d(relu2, filters=256, kernel_size=5, strides=2, padding='same', kernel_initializer=tf.contrib.layers.xavier_initializer())
        bn3 = tf.layers.batch_normalization(x3, training=True)
        relu3 = tf.maximum(0.2 * bn3, bn3)
        relu3 = tf.nn.dropout(relu3,0.9)

        # 4x4x256
        
        # Flatten it
        flat = tf.reshape(relu3, (-1, 4*4*256))
        logits = tf.layers.dense(flat, 1, kernel_initializer=tf.truncated_normal_initializer(stddev=0.02))
        out = tf.sigmoid(logits)


    return out, logits


"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_discriminator(discriminator, tf)
Tests Passed

Generator

Implement generator to generate an image using z. This function should be able to reuse the variables in the neural network. Use tf.variable_scope with a scope name of "generator" to allow the variables to be reused. The function should return the generated 28 x 28 x out_channel_dim images.

In [16]:
def generator(z, out_channel_dim, is_train=True):
    """
    Create the generator network
    :param z: Input z
    :param out_channel_dim: The number of channels in the output image
    :param is_train: Boolean if generator is being used for training
    :return: The tensor output of the generator
    """
    # TODO: Implement Function
    reuse = not is_train
    with tf.variable_scope('generator', reuse=reuse):
        # First fully connected layer
        x1 = tf.layers.dense(z, 7*7*512, kernel_initializer=tf.truncated_normal_initializer(stddev=0.02))
        # Reshape it to start the convolutional stack
        x1 = tf.reshape(x1, (-1, 7, 7, 512))
        x1 = tf.layers.batch_normalization(x1, training=is_train)
        x1 = tf.maximum(0.01 * x1, x1)
        x1 = tf.nn.dropout(x1,0.9)

        # 7x7x512 now
        
        x2 = tf.layers.conv2d_transpose(x1, filters=256, kernel_size=5, strides=1, padding='same', kernel_initializer=tf.contrib.layers.xavier_initializer())
        x2 = tf.layers.batch_normalization(x2, training=is_train)
        x2 = tf.maximum(0.01 * x2, x2)
        x2 = tf.nn.dropout(x2,0.9)
        # 14x14x256 now
        
        x3 = tf.layers.conv2d_transpose(x2, filters=128, kernel_size=5, strides=2, padding='same', kernel_initializer=tf.contrib.layers.xavier_initializer())
        x3 = tf.layers.batch_normalization(x3, training=is_train)
        x3 = tf.maximum(0.01 * x3, x3)
        x3 = tf.nn.dropout(x3,0.9)
        # 28x28x128 now

        # Output layer
        logits = tf.layers.conv2d_transpose(x3, filters=out_channel_dim, kernel_size=5, strides=2, padding='same', kernel_initializer=tf.contrib.layers.xavier_initializer())
        # 28x28x3 now
        
        out = tf.tanh(logits)

    
    return out


"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_generator(generator, tf)
Tests Passed

Loss

Implement model_loss to build the GANs for training and calculate the loss. The function should return a tuple of (discriminator loss, generator loss). Use the following functions you implemented:

  • discriminator(images, reuse=False)
  • generator(z, out_channel_dim, is_train=True)
In [18]:
def model_loss(input_real, input_z, out_channel_dim):
    """
    Get the loss for the discriminator and generator
    :param input_real: Images from the real dataset
    :param input_z: Z input
    :param out_channel_dim: The number of channels in the output image
    :return: A tuple of (discriminator loss, generator loss)
    """
    # TODO: Implement Function
    g_model = generator(input_z, out_channel_dim, is_train=True)
    d_model_real, d_logits_real = discriminator(input_real, reuse=False)
    d_model_fake, d_logits_fake = discriminator(g_model, reuse=True)

    d_loss_real = tf.reduce_mean(
        tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_real, labels=tf.ones_like(d_model_real) * (1 - 0.1)))
    d_loss_fake = tf.reduce_mean(
        tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_fake, labels=tf.zeros_like(d_model_fake)))
    g_loss = tf.reduce_mean(
        tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_fake, labels=tf.ones_like(d_model_fake)))

    d_loss = d_loss_real + d_loss_fake

    
    return d_loss, g_loss


"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_loss(model_loss)
Tests Passed

Optimization

Implement model_opt to create the optimization operations for the GANs. Use tf.trainable_variables to get all the trainable variables. Filter the variables with names that are in the discriminator and generator scope names. The function should return a tuple of (discriminator training operation, generator training operation).

In [9]:
def model_opt(d_loss, g_loss, learning_rate, beta1):
    """
    Get optimization operations
    :param d_loss: Discriminator loss Tensor
    :param g_loss: Generator loss Tensor
    :param learning_rate: Learning Rate Placeholder
    :param beta1: The exponential decay rate for the 1st moment in the optimizer
    :return: A tuple of (discriminator training operation, generator training operation)
    """
    # TODO: Implement Function
    t_vars = tf.trainable_variables()
    d_vars = [var for var in t_vars if var.name.startswith('discriminator')]
    g_vars = [var for var in t_vars if var.name.startswith('generator')]

    with tf.control_dependencies(tf.get_collection(tf.GraphKeys.UPDATE_OPS)):
        d_train_opt = tf.train.AdamOptimizer(learning_rate, beta1=beta1).minimize(d_loss, var_list=d_vars)
        g_train_opt = tf.train.AdamOptimizer(learning_rate, beta1=beta1).minimize(g_loss, var_list=g_vars)

    
    return d_train_opt, g_train_opt


"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_opt(model_opt, tf)
Tests Passed

Neural Network Training

Show Output

Use this function to show the current output of the generator during training. It will help you determine how well the GANs is training.

In [10]:
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
import numpy as np

def show_generator_output(sess, n_images, input_z, out_channel_dim, image_mode):
    """
    Show example output for the generator
    :param sess: TensorFlow session
    :param n_images: Number of Images to display
    :param input_z: Input Z Tensor
    :param out_channel_dim: The number of channels in the output image
    :param image_mode: The mode to use for images ("RGB" or "L")
    """
    cmap = None if image_mode == 'RGB' else 'gray'
    z_dim = input_z.get_shape().as_list()[-1]
    example_z = np.random.uniform(-1, 1, size=[n_images, z_dim])

    samples = sess.run(
        generator(input_z, out_channel_dim, False),
        feed_dict={input_z: example_z})

    images_grid = helper.images_square_grid(samples, image_mode)
    pyplot.imshow(images_grid, cmap=cmap)
    pyplot.show()

Train

Implement train to build and train the GANs. Use the following functions you implemented:

  • model_inputs(image_width, image_height, image_channels, z_dim)
  • model_loss(input_real, input_z, out_channel_dim)
  • model_opt(d_loss, g_loss, learning_rate, beta1)

Use the show_generator_output to show generator output while you train. Running show_generator_output for every batch will drastically increase training time and increase the size of the notebook. It's recommended to print the generator output every 100 batches.

In [11]:
def train(epoch_count, batch_size, z_dim, learning_rate, beta1, get_batches, data_shape, data_image_mode):
    """
    Train the GAN
    :param epoch_count: Number of epochs
    :param batch_size: Batch Size
    :param z_dim: Z dimension
    :param learning_rate: Learning Rate
    :param beta1: The exponential decay rate for the 1st moment in the optimizer
    :param get_batches: Function to get batches
    :param data_shape: Shape of the data
    :param data_image_mode: The image mode to use for images ("RGB" or "L")
    """
    # TODO: Build Model
    out_channel_dim = 3 if data_image_mode == 'RGB' else 1
    
    input_real, input_z, lr = model_inputs(data_shape[1], data_shape[2], data_shape[3], z_dim)
        
    d_loss, g_loss = model_loss(input_real, input_z, data_shape[3])
        
    d_opt, g_opt = model_opt(d_loss, g_loss, lr, beta1)    

    sample_z = np.random.uniform(-1, 1, size=(72, z_dim))

    samples, losses = [], []
    steps = 0
    
    with tf.Session() as sess:
        sess.run(tf.global_variables_initializer())
        for epoch_i in range(epoch_count):
            for batch_images in get_batches(batch_size):
                # TODO: Train Model
                steps += 1
                batch_images = batch_images * 2.0

                # Sample random noise for G
                batch_z = np.random.uniform(-1, 1, size=(batch_size, z_dim))

                # Run optimizers
                _ = sess.run(d_opt, feed_dict={input_real: batch_images, input_z: batch_z, lr: learning_rate})
                _ = sess.run(g_opt, feed_dict={input_z: batch_z, input_real: batch_images, lr: learning_rate})

                if steps % 10 == 0:
                    # At the end of each epoch, get the losses and print them out
                    train_loss_d = d_loss.eval({input_z: batch_z, input_real: batch_images})
                    train_loss_g = g_loss.eval({input_z: batch_z})

                    print("Epoch {}/{}...".format(epoch_i+1, epoch_count),
                          "Steps {}    ".format(steps),
                          "Discriminator Loss: {:.4f}...".format(train_loss_d),
                          "Generator Loss: {:.4f}".format(train_loss_g))
                    # Save losses to view after training
                    losses.append((train_loss_d, train_loss_g))
                
                if steps % 100 == 0:
                    gen_samples = sess.run(
                                   generator(input_z, out_channel_dim, is_train=False),
                                   feed_dict={input_z: sample_z})
                    samples.append(gen_samples)
                    _ = show_generator_output(sess, 25, input_z, data_shape[3], data_image_mode)
                    
    return losses

MNIST

Test your GANs architecture on MNIST. After 2 epochs, the GANs should be able to generate images that look like handwritten digits. Make sure the loss of the generator is lower than the loss of the discriminator or close to 0.

In [12]:
batch_size = 64
z_dim = 100
learning_rate = 0.001
beta1 = 0.1


"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
epochs = 2

mnist_dataset = helper.Dataset('mnist', glob(os.path.join(data_dir, 'mnist/*.jpg')))
with tf.Graph().as_default():
    train(epochs, batch_size, z_dim, learning_rate, beta1, mnist_dataset.get_batches,
          mnist_dataset.shape, mnist_dataset.image_mode)
Epoch 1/2... Steps 10     Discriminator Loss: 10.8557... Generator Loss: 0.0000
Epoch 1/2... Steps 20     Discriminator Loss: 0.1175... Generator Loss: 9.2902
Epoch 1/2... Steps 30     Discriminator Loss: 0.8673... Generator Loss: 1.8374
Epoch 1/2... Steps 40     Discriminator Loss: 1.7637... Generator Loss: 4.0408
Epoch 1/2... Steps 50     Discriminator Loss: 0.4776... Generator Loss: 2.2018
Epoch 1/2... Steps 60     Discriminator Loss: 0.8938... Generator Loss: 1.7589
Epoch 1/2... Steps 70     Discriminator Loss: 1.5531... Generator Loss: 2.4285
Epoch 1/2... Steps 80     Discriminator Loss: 1.5927... Generator Loss: 1.7071
Epoch 1/2... Steps 90     Discriminator Loss: 1.7859... Generator Loss: 1.7034
Epoch 1/2... Steps 100     Discriminator Loss: 1.5327... Generator Loss: 1.1398
Epoch 1/2... Steps 110     Discriminator Loss: 1.5637... Generator Loss: 1.1359
Epoch 1/2... Steps 120     Discriminator Loss: 1.5214... Generator Loss: 1.3062
Epoch 1/2... Steps 130     Discriminator Loss: 1.6720... Generator Loss: 1.3192
Epoch 1/2... Steps 140     Discriminator Loss: 1.6609... Generator Loss: 0.9271
Epoch 1/2... Steps 150     Discriminator Loss: 1.4997... Generator Loss: 1.0697
Epoch 1/2... Steps 160     Discriminator Loss: 1.5856... Generator Loss: 1.0692
Epoch 1/2... Steps 170     Discriminator Loss: 1.4882... Generator Loss: 1.1292
Epoch 1/2... Steps 180     Discriminator Loss: 1.5166... Generator Loss: 1.0073
Epoch 1/2... Steps 190     Discriminator Loss: 1.5011... Generator Loss: 1.1356
Epoch 1/2... Steps 200     Discriminator Loss: 1.5664... Generator Loss: 0.9598
Epoch 1/2... Steps 210     Discriminator Loss: 1.4196... Generator Loss: 0.8852
Epoch 1/2... Steps 220     Discriminator Loss: 1.4571... Generator Loss: 1.0158
Epoch 1/2... Steps 230     Discriminator Loss: 1.4525... Generator Loss: 1.0727
Epoch 1/2... Steps 240     Discriminator Loss: 1.5385... Generator Loss: 1.0589
Epoch 1/2... Steps 250     Discriminator Loss: 1.5024... Generator Loss: 1.0930
Epoch 1/2... Steps 260     Discriminator Loss: 1.5797... Generator Loss: 1.0891
Epoch 1/2... Steps 270     Discriminator Loss: 1.4589... Generator Loss: 1.0992
Epoch 1/2... Steps 280     Discriminator Loss: 1.4285... Generator Loss: 1.0965
Epoch 1/2... Steps 290     Discriminator Loss: 1.4093... Generator Loss: 0.7257
Epoch 1/2... Steps 300     Discriminator Loss: 1.4361... Generator Loss: 1.1932
Epoch 1/2... Steps 310     Discriminator Loss: 1.4089... Generator Loss: 0.9911
Epoch 1/2... Steps 320     Discriminator Loss: 1.4134... Generator Loss: 0.9759
Epoch 1/2... Steps 330     Discriminator Loss: 1.4454... Generator Loss: 1.0371
Epoch 1/2... Steps 340     Discriminator Loss: 1.5069... Generator Loss: 0.9571
Epoch 1/2... Steps 350     Discriminator Loss: 1.4562... Generator Loss: 0.8027
Epoch 1/2... Steps 360     Discriminator Loss: 1.5979... Generator Loss: 1.2475
Epoch 1/2... Steps 370     Discriminator Loss: 1.4708... Generator Loss: 1.0257
Epoch 1/2... Steps 380     Discriminator Loss: 1.6112... Generator Loss: 1.2710
Epoch 1/2... Steps 390     Discriminator Loss: 1.4754... Generator Loss: 0.9449
Epoch 1/2... Steps 400     Discriminator Loss: 1.4703... Generator Loss: 0.9737
Epoch 1/2... Steps 410     Discriminator Loss: 1.4733... Generator Loss: 0.9776
Epoch 1/2... Steps 420     Discriminator Loss: 1.2770... Generator Loss: 0.9792
Epoch 1/2... Steps 430     Discriminator Loss: 1.4089... Generator Loss: 0.9896
Epoch 1/2... Steps 440     Discriminator Loss: 1.8193... Generator Loss: 1.4441
Epoch 1/2... Steps 450     Discriminator Loss: 1.3229... Generator Loss: 0.8700
Epoch 1/2... Steps 460     Discriminator Loss: 1.4087... Generator Loss: 0.9933
Epoch 1/2... Steps 470     Discriminator Loss: 1.4609... Generator Loss: 0.9479
Epoch 1/2... Steps 480     Discriminator Loss: 1.4364... Generator Loss: 0.9275
Epoch 1/2... Steps 490     Discriminator Loss: 1.3073... Generator Loss: 0.8114
Epoch 1/2... Steps 500     Discriminator Loss: 1.3372... Generator Loss: 0.9911
Epoch 1/2... Steps 510     Discriminator Loss: 1.8644... Generator Loss: 1.6580
Epoch 1/2... Steps 520     Discriminator Loss: 1.3488... Generator Loss: 0.5584
Epoch 1/2... Steps 530     Discriminator Loss: 1.5814... Generator Loss: 0.3159
Epoch 1/2... Steps 540     Discriminator Loss: 1.5160... Generator Loss: 0.3453
Epoch 1/2... Steps 550     Discriminator Loss: 1.6804... Generator Loss: 0.2833
Epoch 1/2... Steps 560     Discriminator Loss: 1.4248... Generator Loss: 0.4332
Epoch 1/2... Steps 570     Discriminator Loss: 1.7076... Generator Loss: 0.2821
Epoch 1/2... Steps 580     Discriminator Loss: 1.4580... Generator Loss: 0.4150
Epoch 1/2... Steps 590     Discriminator Loss: 1.3968... Generator Loss: 0.4376
Epoch 1/2... Steps 600     Discriminator Loss: 1.6990... Generator Loss: 0.2651
Epoch 1/2... Steps 610     Discriminator Loss: 1.4070... Generator Loss: 0.4361
Epoch 1/2... Steps 620     Discriminator Loss: 1.7143... Generator Loss: 0.2640
Epoch 1/2... Steps 630     Discriminator Loss: 1.3932... Generator Loss: 0.4391
Epoch 1/2... Steps 640     Discriminator Loss: 1.5607... Generator Loss: 0.3224
Epoch 1/2... Steps 650     Discriminator Loss: 1.5802... Generator Loss: 0.3272
Epoch 1/2... Steps 660     Discriminator Loss: 1.4582... Generator Loss: 0.3990
Epoch 1/2... Steps 670     Discriminator Loss: 1.6956... Generator Loss: 0.2674
Epoch 1/2... Steps 680     Discriminator Loss: 1.3809... Generator Loss: 0.4341
Epoch 1/2... Steps 690     Discriminator Loss: 1.4681... Generator Loss: 0.4299
Epoch 1/2... Steps 700     Discriminator Loss: 1.4300... Generator Loss: 0.4543
Epoch 1/2... Steps 710     Discriminator Loss: 1.4240... Generator Loss: 0.3943
Epoch 1/2... Steps 720     Discriminator Loss: 1.5954... Generator Loss: 0.3035
Epoch 1/2... Steps 730     Discriminator Loss: 1.4738... Generator Loss: 0.3549
Epoch 1/2... Steps 740     Discriminator Loss: 1.3847... Generator Loss: 0.4324
Epoch 1/2... Steps 750     Discriminator Loss: 1.4663... Generator Loss: 0.3808
Epoch 1/2... Steps 760     Discriminator Loss: 1.5206... Generator Loss: 0.3505
Epoch 1/2... Steps 770     Discriminator Loss: 1.5719... Generator Loss: 0.3190
Epoch 1/2... Steps 780     Discriminator Loss: 1.3428... Generator Loss: 0.5026
Epoch 1/2... Steps 790     Discriminator Loss: 1.5154... Generator Loss: 0.3283
Epoch 1/2... Steps 800     Discriminator Loss: 1.4950... Generator Loss: 0.3702
Epoch 1/2... Steps 810     Discriminator Loss: 1.3035... Generator Loss: 1.0276
Epoch 1/2... Steps 820     Discriminator Loss: 1.3595... Generator Loss: 0.9856
Epoch 1/2... Steps 830     Discriminator Loss: 1.3505... Generator Loss: 1.0274
Epoch 1/2... Steps 840     Discriminator Loss: 1.2423... Generator Loss: 1.1627
Epoch 1/2... Steps 850     Discriminator Loss: 1.3299... Generator Loss: 1.1365
Epoch 1/2... Steps 860     Discriminator Loss: 1.2541... Generator Loss: 1.1072
Epoch 1/2... Steps 870     Discriminator Loss: 1.2925... Generator Loss: 1.0898
Epoch 1/2... Steps 880     Discriminator Loss: 1.1473... Generator Loss: 0.6463
Epoch 1/2... Steps 890     Discriminator Loss: 1.6707... Generator Loss: 0.2967
Epoch 1/2... Steps 900     Discriminator Loss: 1.4034... Generator Loss: 0.4912
Epoch 1/2... Steps 910     Discriminator Loss: 1.4679... Generator Loss: 0.3871
Epoch 1/2... Steps 920     Discriminator Loss: 1.4195... Generator Loss: 0.3901
Epoch 1/2... Steps 930     Discriminator Loss: 1.3822... Generator Loss: 0.4169
Epoch 2/2... Steps 940     Discriminator Loss: 1.5683... Generator Loss: 0.3100
Epoch 2/2... Steps 950     Discriminator Loss: 1.3427... Generator Loss: 0.4991
Epoch 2/2... Steps 960     Discriminator Loss: 1.4331... Generator Loss: 0.3691
Epoch 2/2... Steps 970     Discriminator Loss: 1.3651... Generator Loss: 0.4696
Epoch 2/2... Steps 980     Discriminator Loss: 1.5036... Generator Loss: 0.4078
Epoch 2/2... Steps 990     Discriminator Loss: 1.4477... Generator Loss: 0.3612
Epoch 2/2... Steps 1000     Discriminator Loss: 1.4625... Generator Loss: 0.3990
Epoch 2/2... Steps 1010     Discriminator Loss: 1.5446... Generator Loss: 0.3281
Epoch 2/2... Steps 1020     Discriminator Loss: 1.2704... Generator Loss: 0.5005
Epoch 2/2... Steps 1030     Discriminator Loss: 1.3153... Generator Loss: 0.5873
Epoch 2/2... Steps 1040     Discriminator Loss: 1.1368... Generator Loss: 0.7745
Epoch 2/2... Steps 1050     Discriminator Loss: 1.3694... Generator Loss: 1.1470
Epoch 2/2... Steps 1060     Discriminator Loss: 1.3456... Generator Loss: 0.9422
Epoch 2/2... Steps 1070     Discriminator Loss: 1.2330... Generator Loss: 0.9453
Epoch 2/2... Steps 1080     Discriminator Loss: 1.2806... Generator Loss: 0.7076
Epoch 2/2... Steps 1090     Discriminator Loss: 1.4010... Generator Loss: 1.0160
Epoch 2/2... Steps 1100     Discriminator Loss: 1.2651... Generator Loss: 1.0154
Epoch 2/2... Steps 1110     Discriminator Loss: 1.2620... Generator Loss: 1.1317
Epoch 2/2... Steps 1120     Discriminator Loss: 1.2435... Generator Loss: 1.1290
Epoch 2/2... Steps 1130     Discriminator Loss: 1.2206... Generator Loss: 1.1331
Epoch 2/2... Steps 1140     Discriminator Loss: 1.5508... Generator Loss: 1.5094
Epoch 2/2... Steps 1150     Discriminator Loss: 1.2294... Generator Loss: 0.9201
Epoch 2/2... Steps 1160     Discriminator Loss: 1.2003... Generator Loss: 0.6906
Epoch 2/2... Steps 1170     Discriminator Loss: 1.3782... Generator Loss: 0.4873
Epoch 2/2... Steps 1180     Discriminator Loss: 1.3953... Generator Loss: 0.4003
Epoch 2/2... Steps 1190     Discriminator Loss: 1.5689... Generator Loss: 0.3486
Epoch 2/2... Steps 1200     Discriminator Loss: 1.3153... Generator Loss: 0.6480
Epoch 2/2... Steps 1210     Discriminator Loss: 1.2916... Generator Loss: 0.8993
Epoch 2/2... Steps 1220     Discriminator Loss: 1.2832... Generator Loss: 0.6990
Epoch 2/2... Steps 1230     Discriminator Loss: 1.4828... Generator Loss: 1.4001
Epoch 2/2... Steps 1240     Discriminator Loss: 1.4518... Generator Loss: 1.3029
Epoch 2/2... Steps 1250     Discriminator Loss: 1.1816... Generator Loss: 0.6558
Epoch 2/2... Steps 1260     Discriminator Loss: 1.8112... Generator Loss: 0.2305
Epoch 2/2... Steps 1270     Discriminator Loss: 1.4611... Generator Loss: 0.3958
Epoch 2/2... Steps 1280     Discriminator Loss: 1.7201... Generator Loss: 0.2639
Epoch 2/2... Steps 1290     Discriminator Loss: 1.2160... Generator Loss: 1.1696
Epoch 2/2... Steps 1300     Discriminator Loss: 1.1020... Generator Loss: 1.1005
Epoch 2/2... Steps 1310     Discriminator Loss: 1.3312... Generator Loss: 1.3114
Epoch 2/2... Steps 1320     Discriminator Loss: 1.2759... Generator Loss: 1.1224
Epoch 2/2... Steps 1330     Discriminator Loss: 1.2514... Generator Loss: 0.7799
Epoch 2/2... Steps 1340     Discriminator Loss: 1.1645... Generator Loss: 0.9646
Epoch 2/2... Steps 1350     Discriminator Loss: 1.4823... Generator Loss: 1.2697
Epoch 2/2... Steps 1360     Discriminator Loss: 1.2447... Generator Loss: 0.5590
Epoch 2/2... Steps 1370     Discriminator Loss: 1.5327... Generator Loss: 0.3317
Epoch 2/2... Steps 1380     Discriminator Loss: 1.4387... Generator Loss: 0.3558
Epoch 2/2... Steps 1390     Discriminator Loss: 1.4795... Generator Loss: 0.3818
Epoch 2/2... Steps 1400     Discriminator Loss: 1.4909... Generator Loss: 0.3796
Epoch 2/2... Steps 1410     Discriminator Loss: 1.4349... Generator Loss: 0.3775
Epoch 2/2... Steps 1420     Discriminator Loss: 1.4218... Generator Loss: 0.3714
Epoch 2/2... Steps 1430     Discriminator Loss: 1.2627... Generator Loss: 0.4611
Epoch 2/2... Steps 1440     Discriminator Loss: 2.0382... Generator Loss: 0.1965
Epoch 2/2... Steps 1450     Discriminator Loss: 1.4815... Generator Loss: 0.3796
Epoch 2/2... Steps 1460     Discriminator Loss: 1.3847... Generator Loss: 0.4246
Epoch 2/2... Steps 1470     Discriminator Loss: 1.5042... Generator Loss: 0.3227
Epoch 2/2... Steps 1480     Discriminator Loss: 1.4542... Generator Loss: 0.3886
Epoch 2/2... Steps 1490     Discriminator Loss: 1.2773... Generator Loss: 0.6628
Epoch 2/2... Steps 1500     Discriminator Loss: 1.2177... Generator Loss: 1.0232
Epoch 2/2... Steps 1510     Discriminator Loss: 1.1296... Generator Loss: 1.2721
Epoch 2/2... Steps 1520     Discriminator Loss: 1.3066... Generator Loss: 0.9155
Epoch 2/2... Steps 1530     Discriminator Loss: 1.1536... Generator Loss: 0.7730
Epoch 2/2... Steps 1540     Discriminator Loss: 1.1241... Generator Loss: 1.2965
Epoch 2/2... Steps 1550     Discriminator Loss: 1.1785... Generator Loss: 0.7791
Epoch 2/2... Steps 1560     Discriminator Loss: 1.3112... Generator Loss: 0.9487
Epoch 2/2... Steps 1570     Discriminator Loss: 1.2115... Generator Loss: 1.0624
Epoch 2/2... Steps 1580     Discriminator Loss: 1.0075... Generator Loss: 0.9453
Epoch 2/2... Steps 1590     Discriminator Loss: 1.2682... Generator Loss: 0.5527
Epoch 2/2... Steps 1600     Discriminator Loss: 1.2321... Generator Loss: 0.6704
Epoch 2/2... Steps 1610     Discriminator Loss: 1.3451... Generator Loss: 0.4248
Epoch 2/2... Steps 1620     Discriminator Loss: 1.5324... Generator Loss: 0.3414
Epoch 2/2... Steps 1630     Discriminator Loss: 1.1662... Generator Loss: 0.5833
Epoch 2/2... Steps 1640     Discriminator Loss: 1.3297... Generator Loss: 0.4428
Epoch 2/2... Steps 1650     Discriminator Loss: 1.5831... Generator Loss: 0.3257
Epoch 2/2... Steps 1660     Discriminator Loss: 1.4843... Generator Loss: 0.3682
Epoch 2/2... Steps 1670     Discriminator Loss: 1.6472... Generator Loss: 0.2740
Epoch 2/2... Steps 1680     Discriminator Loss: 1.2713... Generator Loss: 0.6563
Epoch 2/2... Steps 1690     Discriminator Loss: 1.1404... Generator Loss: 0.9346
Epoch 2/2... Steps 1700     Discriminator Loss: 1.1943... Generator Loss: 0.9606
Epoch 2/2... Steps 1710     Discriminator Loss: 1.2102... Generator Loss: 1.1925
Epoch 2/2... Steps 1720     Discriminator Loss: 1.2755... Generator Loss: 1.3228
Epoch 2/2... Steps 1730     Discriminator Loss: 0.9573... Generator Loss: 1.0666
Epoch 2/2... Steps 1740     Discriminator Loss: 1.0529... Generator Loss: 0.8084
Epoch 2/2... Steps 1750     Discriminator Loss: 1.4634... Generator Loss: 0.3619
Epoch 2/2... Steps 1760     Discriminator Loss: 1.6299... Generator Loss: 0.2871
Epoch 2/2... Steps 1770     Discriminator Loss: 1.2999... Generator Loss: 0.5746
Epoch 2/2... Steps 1780     Discriminator Loss: 1.4346... Generator Loss: 0.4274
Epoch 2/2... Steps 1790     Discriminator Loss: 1.6028... Generator Loss: 0.3846
Epoch 2/2... Steps 1800     Discriminator Loss: 1.5436... Generator Loss: 0.3900
Epoch 2/2... Steps 1810     Discriminator Loss: 1.4373... Generator Loss: 0.3957
Epoch 2/2... Steps 1820     Discriminator Loss: 1.6715... Generator Loss: 0.2672
Epoch 2/2... Steps 1830     Discriminator Loss: 1.6144... Generator Loss: 0.3060
Epoch 2/2... Steps 1840     Discriminator Loss: 1.3427... Generator Loss: 0.4054
Epoch 2/2... Steps 1850     Discriminator Loss: 1.3639... Generator Loss: 0.4099
Epoch 2/2... Steps 1860     Discriminator Loss: 1.5891... Generator Loss: 0.3005
Epoch 2/2... Steps 1870     Discriminator Loss: 1.3864... Generator Loss: 0.3985

CelebA

Run your GANs on CelebA. It will take around 20 minutes on the average GPU to run one epoch. You can run the whole epoch or stop when it starts to generate realistic faces.

In [20]:
batch_size = 32
z_dim = 100
learning_rate = 0.0005
beta1 = 0.1


"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
epochs = 1

celeba_dataset = helper.Dataset('celeba', glob(os.path.join(data_dir, 'img_align_celeba/*.jpg')))
with tf.Graph().as_default():
    train(epochs, batch_size, z_dim, learning_rate, beta1, celeba_dataset.get_batches,
          celeba_dataset.shape, celeba_dataset.image_mode)
Epoch 1/1... Steps 10     Discriminator Loss: 2.0601... Generator Loss: 7.0519
Epoch 1/1... Steps 20     Discriminator Loss: 2.3504... Generator Loss: 4.2143
Epoch 1/1... Steps 30     Discriminator Loss: 1.5086... Generator Loss: 5.4976
Epoch 1/1... Steps 40     Discriminator Loss: 1.0620... Generator Loss: 3.8764
Epoch 1/1... Steps 50     Discriminator Loss: 1.3546... Generator Loss: 0.5286
Epoch 1/1... Steps 60     Discriminator Loss: 1.4817... Generator Loss: 0.5040
Epoch 1/1... Steps 70     Discriminator Loss: 1.4898... Generator Loss: 0.5300
Epoch 1/1... Steps 80     Discriminator Loss: 1.9291... Generator Loss: 0.3194
Epoch 1/1... Steps 90     Discriminator Loss: 1.3871... Generator Loss: 0.6423
Epoch 1/1... Steps 100     Discriminator Loss: 1.2093... Generator Loss: 0.9667
Epoch 1/1... Steps 110     Discriminator Loss: 2.0242... Generator Loss: 0.2681
Epoch 1/1... Steps 120     Discriminator Loss: 1.5517... Generator Loss: 0.4059
Epoch 1/1... Steps 130     Discriminator Loss: 2.3002... Generator Loss: 0.2070
Epoch 1/1... Steps 140     Discriminator Loss: 2.1266... Generator Loss: 0.2334
Epoch 1/1... Steps 150     Discriminator Loss: 1.2861... Generator Loss: 0.6276
Epoch 1/1... Steps 160     Discriminator Loss: 1.3051... Generator Loss: 0.9417
Epoch 1/1... Steps 170     Discriminator Loss: 1.5775... Generator Loss: 1.5206
Epoch 1/1... Steps 180     Discriminator Loss: 1.6066... Generator Loss: 1.2055
Epoch 1/1... Steps 190     Discriminator Loss: 1.8258... Generator Loss: 0.2877
Epoch 1/1... Steps 200     Discriminator Loss: 1.7845... Generator Loss: 0.3312
Epoch 1/1... Steps 210     Discriminator Loss: 1.4620... Generator Loss: 0.4868
Epoch 1/1... Steps 220     Discriminator Loss: 1.4942... Generator Loss: 0.4820
Epoch 1/1... Steps 230     Discriminator Loss: 1.2037... Generator Loss: 0.8920
Epoch 1/1... Steps 240     Discriminator Loss: 2.0046... Generator Loss: 0.2680
Epoch 1/1... Steps 250     Discriminator Loss: 1.5499... Generator Loss: 0.4384
Epoch 1/1... Steps 260     Discriminator Loss: 1.5256... Generator Loss: 0.4564
Epoch 1/1... Steps 270     Discriminator Loss: 1.1515... Generator Loss: 0.8447
Epoch 1/1... Steps 280     Discriminator Loss: 1.0408... Generator Loss: 1.4663
Epoch 1/1... Steps 290     Discriminator Loss: 2.1668... Generator Loss: 2.2745
Epoch 1/1... Steps 300     Discriminator Loss: 1.4692... Generator Loss: 0.4950
Epoch 1/1... Steps 310     Discriminator Loss: 1.2492... Generator Loss: 0.8236
Epoch 1/1... Steps 320     Discriminator Loss: 1.1336... Generator Loss: 2.3733
Epoch 1/1... Steps 330     Discriminator Loss: 1.0462... Generator Loss: 2.2791
Epoch 1/1... Steps 340     Discriminator Loss: 0.9291... Generator Loss: 1.8707
Epoch 1/1... Steps 350     Discriminator Loss: 1.4950... Generator Loss: 0.4627
Epoch 1/1... Steps 360     Discriminator Loss: 0.9858... Generator Loss: 1.1351
Epoch 1/1... Steps 370     Discriminator Loss: 1.5429... Generator Loss: 0.9195
Epoch 1/1... Steps 380     Discriminator Loss: 0.7633... Generator Loss: 2.2210
Epoch 1/1... Steps 390     Discriminator Loss: 1.7044... Generator Loss: 2.3924
Epoch 1/1... Steps 400     Discriminator Loss: 1.2527... Generator Loss: 2.1837
Epoch 1/1... Steps 410     Discriminator Loss: 1.0823... Generator Loss: 1.6921
Epoch 1/1... Steps 420     Discriminator Loss: 0.8201... Generator Loss: 1.1738
Epoch 1/1... Steps 430     Discriminator Loss: 1.1411... Generator Loss: 0.7735
Epoch 1/1... Steps 440     Discriminator Loss: 1.1381... Generator Loss: 0.8503
Epoch 1/1... Steps 450     Discriminator Loss: 0.9845... Generator Loss: 2.3876
Epoch 1/1... Steps 460     Discriminator Loss: 1.3103... Generator Loss: 1.4004
Epoch 1/1... Steps 470     Discriminator Loss: 1.0024... Generator Loss: 2.5094
Epoch 1/1... Steps 480     Discriminator Loss: 1.3865... Generator Loss: 2.2006
Epoch 1/1... Steps 490     Discriminator Loss: 1.8105... Generator Loss: 1.5082
Epoch 1/1... Steps 500     Discriminator Loss: 1.8608... Generator Loss: 1.5630
Epoch 1/1... Steps 510     Discriminator Loss: 0.7693... Generator Loss: 2.0525
Epoch 1/1... Steps 520     Discriminator Loss: 1.9217... Generator Loss: 2.0226
Epoch 1/1... Steps 530     Discriminator Loss: 1.5842... Generator Loss: 1.7583
Epoch 1/1... Steps 540     Discriminator Loss: 1.7241... Generator Loss: 1.8860
Epoch 1/1... Steps 550     Discriminator Loss: 1.0468... Generator Loss: 0.7236
Epoch 1/1... Steps 560     Discriminator Loss: 0.8355... Generator Loss: 1.8059
Epoch 1/1... Steps 570     Discriminator Loss: 1.0801... Generator Loss: 1.9337
Epoch 1/1... Steps 580     Discriminator Loss: 1.0967... Generator Loss: 0.8877
Epoch 1/1... Steps 590     Discriminator Loss: 1.5154... Generator Loss: 0.4406
Epoch 1/1... Steps 600     Discriminator Loss: 2.1248... Generator Loss: 0.2143
Epoch 1/1... Steps 610     Discriminator Loss: 1.5897... Generator Loss: 0.3878
Epoch 1/1... Steps 620     Discriminator Loss: 0.8039... Generator Loss: 1.1040
Epoch 1/1... Steps 630     Discriminator Loss: 1.0753... Generator Loss: 0.9620
Epoch 1/1... Steps 640     Discriminator Loss: 2.7544... Generator Loss: 2.9744
Epoch 1/1... Steps 650     Discriminator Loss: 1.1810... Generator Loss: 1.9549
Epoch 1/1... Steps 660     Discriminator Loss: 0.9054... Generator Loss: 2.4038
Epoch 1/1... Steps 670     Discriminator Loss: 1.3809... Generator Loss: 1.0458
Epoch 1/1... Steps 680     Discriminator Loss: 1.0098... Generator Loss: 1.5731
Epoch 1/1... Steps 690     Discriminator Loss: 1.4953... Generator Loss: 1.9573
Epoch 1/1... Steps 700     Discriminator Loss: 1.3454... Generator Loss: 1.1276
Epoch 1/1... Steps 710     Discriminator Loss: 0.7055... Generator Loss: 1.4844
Epoch 1/1... Steps 720     Discriminator Loss: 0.8325... Generator Loss: 1.1117
Epoch 1/1... Steps 730     Discriminator Loss: 1.0979... Generator Loss: 0.7482
Epoch 1/1... Steps 740     Discriminator Loss: 2.0556... Generator Loss: 2.4383
Epoch 1/1... Steps 750     Discriminator Loss: 1.9102... Generator Loss: 0.2607
Epoch 1/1... Steps 760     Discriminator Loss: 1.3430... Generator Loss: 0.5707
Epoch 1/1... Steps 770     Discriminator Loss: 0.9544... Generator Loss: 1.5700
Epoch 1/1... Steps 780     Discriminator Loss: 1.6521... Generator Loss: 0.3662
Epoch 1/1... Steps 790     Discriminator Loss: 0.7659... Generator Loss: 1.9961
Epoch 1/1... Steps 800     Discriminator Loss: 1.3396... Generator Loss: 0.5534
Epoch 1/1... Steps 810     Discriminator Loss: 1.5713... Generator Loss: 1.3973
Epoch 1/1... Steps 820     Discriminator Loss: 0.7223... Generator Loss: 1.7239
Epoch 1/1... Steps 830     Discriminator Loss: 1.1862... Generator Loss: 2.7000
Epoch 1/1... Steps 840     Discriminator Loss: 1.9022... Generator Loss: 0.2643
Epoch 1/1... Steps 850     Discriminator Loss: 1.4360... Generator Loss: 1.4470
Epoch 1/1... Steps 860     Discriminator Loss: 1.6784... Generator Loss: 2.0723
Epoch 1/1... Steps 870     Discriminator Loss: 1.0798... Generator Loss: 0.7061
Epoch 1/1... Steps 880     Discriminator Loss: 1.2009... Generator Loss: 0.6771
Epoch 1/1... Steps 890     Discriminator Loss: 0.7674... Generator Loss: 1.3493
Epoch 1/1... Steps 900     Discriminator Loss: 1.2468... Generator Loss: 1.4814
Epoch 1/1... Steps 910     Discriminator Loss: 1.1590... Generator Loss: 0.7047
Epoch 1/1... Steps 920     Discriminator Loss: 1.4738... Generator Loss: 0.4759
Epoch 1/1... Steps 930     Discriminator Loss: 1.1732... Generator Loss: 0.6495
Epoch 1/1... Steps 940     Discriminator Loss: 1.4003... Generator Loss: 0.4652
Epoch 1/1... Steps 950     Discriminator Loss: 1.1927... Generator Loss: 0.9680
Epoch 1/1... Steps 960     Discriminator Loss: 1.2535... Generator Loss: 0.5540
Epoch 1/1... Steps 970     Discriminator Loss: 0.9554... Generator Loss: 0.8419
Epoch 1/1... Steps 980     Discriminator Loss: 1.5265... Generator Loss: 0.3797
Epoch 1/1... Steps 990     Discriminator Loss: 0.8659... Generator Loss: 0.9916
Epoch 1/1... Steps 1000     Discriminator Loss: 2.8145... Generator Loss: 3.4062
Epoch 1/1... Steps 1010     Discriminator Loss: 1.2963... Generator Loss: 0.5773
Epoch 1/1... Steps 1020     Discriminator Loss: 1.2006... Generator Loss: 0.6074
Epoch 1/1... Steps 1030     Discriminator Loss: 0.6474... Generator Loss: 1.9212
Epoch 1/1... Steps 1040     Discriminator Loss: 1.2541... Generator Loss: 0.6310
Epoch 1/1... Steps 1050     Discriminator Loss: 1.0896... Generator Loss: 1.6179
Epoch 1/1... Steps 1060     Discriminator Loss: 2.0179... Generator Loss: 2.6405
Epoch 1/1... Steps 1070     Discriminator Loss: 1.0931... Generator Loss: 0.7569
Epoch 1/1... Steps 1080     Discriminator Loss: 1.6521... Generator Loss: 0.3272
Epoch 1/1... Steps 1090     Discriminator Loss: 0.8583... Generator Loss: 1.1570
Epoch 1/1... Steps 1100     Discriminator Loss: 1.0765... Generator Loss: 0.6885
Epoch 1/1... Steps 1110     Discriminator Loss: 0.5038... Generator Loss: 2.4610
Epoch 1/1... Steps 1120     Discriminator Loss: 1.1145... Generator Loss: 2.1270
Epoch 1/1... Steps 1130     Discriminator Loss: 1.3555... Generator Loss: 2.8183
Epoch 1/1... Steps 1140     Discriminator Loss: 1.2459... Generator Loss: 0.6101
Epoch 1/1... Steps 1150     Discriminator Loss: 1.3714... Generator Loss: 0.4759
Epoch 1/1... Steps 1160     Discriminator Loss: 1.1168... Generator Loss: 3.2288
Epoch 1/1... Steps 1170     Discriminator Loss: 1.1873... Generator Loss: 0.6558
Epoch 1/1... Steps 1180     Discriminator Loss: 0.8720... Generator Loss: 1.5624
Epoch 1/1... Steps 1190     Discriminator Loss: 0.8625... Generator Loss: 2.4124
Epoch 1/1... Steps 1200     Discriminator Loss: 2.1517... Generator Loss: 0.2011
Epoch 1/1... Steps 1210     Discriminator Loss: 1.5099... Generator Loss: 0.4547
Epoch 1/1... Steps 1220     Discriminator Loss: 1.2356... Generator Loss: 0.9968
Epoch 1/1... Steps 1230     Discriminator Loss: 0.7005... Generator Loss: 1.7586
Epoch 1/1... Steps 1240     Discriminator Loss: 1.6893... Generator Loss: 1.7620
Epoch 1/1... Steps 1250     Discriminator Loss: 1.0972... Generator Loss: 0.7558
Epoch 1/1... Steps 1260     Discriminator Loss: 1.6018... Generator Loss: 0.3581
Epoch 1/1... Steps 1270     Discriminator Loss: 1.1264... Generator Loss: 0.7865
Epoch 1/1... Steps 1280     Discriminator Loss: 1.1330... Generator Loss: 1.6740
Epoch 1/1... Steps 1290     Discriminator Loss: 2.0189... Generator Loss: 0.2508
Epoch 1/1... Steps 1300     Discriminator Loss: 1.4230... Generator Loss: 2.4873
Epoch 1/1... Steps 1310     Discriminator Loss: 0.5431... Generator Loss: 2.0780
Epoch 1/1... Steps 1320     Discriminator Loss: 0.9474... Generator Loss: 0.8634
Epoch 1/1... Steps 1330     Discriminator Loss: 0.8819... Generator Loss: 1.2753
Epoch 1/1... Steps 1340     Discriminator Loss: 2.0547... Generator Loss: 2.0166
Epoch 1/1... Steps 1350     Discriminator Loss: 1.0542... Generator Loss: 1.1462
Epoch 1/1... Steps 1360     Discriminator Loss: 2.4647... Generator Loss: 3.7125
Epoch 1/1... Steps 1370     Discriminator Loss: 1.0637... Generator Loss: 1.4198
Epoch 1/1... Steps 1380     Discriminator Loss: 0.8036... Generator Loss: 1.0725
Epoch 1/1... Steps 1390     Discriminator Loss: 0.4402... Generator Loss: 3.1115
Epoch 1/1... Steps 1400     Discriminator Loss: 0.8754... Generator Loss: 1.8455
Epoch 1/1... Steps 1410     Discriminator Loss: 0.7526... Generator Loss: 1.9313
Epoch 1/1... Steps 1420     Discriminator Loss: 1.6371... Generator Loss: 2.2108
Epoch 1/1... Steps 1430     Discriminator Loss: 0.4474... Generator Loss: 2.7349
Epoch 1/1... Steps 1440     Discriminator Loss: 0.4914... Generator Loss: 2.1822
Epoch 1/1... Steps 1450     Discriminator Loss: 0.9616... Generator Loss: 1.1527
Epoch 1/1... Steps 1460     Discriminator Loss: 1.5730... Generator Loss: 0.4262
Epoch 1/1... Steps 1470     Discriminator Loss: 0.7065... Generator Loss: 1.4393
Epoch 1/1... Steps 1480     Discriminator Loss: 1.1830... Generator Loss: 0.7127
Epoch 1/1... Steps 1490     Discriminator Loss: 0.7071... Generator Loss: 1.5793
Epoch 1/1... Steps 1500     Discriminator Loss: 2.0075... Generator Loss: 2.9593
Epoch 1/1... Steps 1510     Discriminator Loss: 0.5589... Generator Loss: 2.8983
Epoch 1/1... Steps 1520     Discriminator Loss: 0.7183... Generator Loss: 2.9215
Epoch 1/1... Steps 1530     Discriminator Loss: 0.9363... Generator Loss: 2.1294
Epoch 1/1... Steps 1540     Discriminator Loss: 1.3627... Generator Loss: 1.5870
Epoch 1/1... Steps 1550     Discriminator Loss: 0.4406... Generator Loss: 2.4423
Epoch 1/1... Steps 1560     Discriminator Loss: 0.8793... Generator Loss: 1.1068
Epoch 1/1... Steps 1570     Discriminator Loss: 1.3947... Generator Loss: 2.0976
Epoch 1/1... Steps 1580     Discriminator Loss: 0.9598... Generator Loss: 1.6193
Epoch 1/1... Steps 1590     Discriminator Loss: 0.7115... Generator Loss: 1.7874
Epoch 1/1... Steps 1600     Discriminator Loss: 0.4421... Generator Loss: 2.6160
Epoch 1/1... Steps 1610     Discriminator Loss: 1.8214... Generator Loss: 0.3031
Epoch 1/1... Steps 1620     Discriminator Loss: 0.9159... Generator Loss: 1.1827
Epoch 1/1... Steps 1630     Discriminator Loss: 1.3846... Generator Loss: 0.6512
Epoch 1/1... Steps 1640     Discriminator Loss: 1.9904... Generator Loss: 2.0777
Epoch 1/1... Steps 1650     Discriminator Loss: 1.6397... Generator Loss: 0.4629
Epoch 1/1... Steps 1660     Discriminator Loss: 2.4759... Generator Loss: 2.8919
Epoch 1/1... Steps 1670     Discriminator Loss: 1.5696... Generator Loss: 1.6341
Epoch 1/1... Steps 1680     Discriminator Loss: 0.5931... Generator Loss: 1.8033
Epoch 1/1... Steps 1690     Discriminator Loss: 1.4973... Generator Loss: 1.9003
Epoch 1/1... Steps 1700     Discriminator Loss: 1.3633... Generator Loss: 0.4534
Epoch 1/1... Steps 1710     Discriminator Loss: 0.8748... Generator Loss: 1.3347
Epoch 1/1... Steps 1720     Discriminator Loss: 1.2756... Generator Loss: 0.7422
Epoch 1/1... Steps 1730     Discriminator Loss: 0.5695... Generator Loss: 2.1721
Epoch 1/1... Steps 1740     Discriminator Loss: 1.1829... Generator Loss: 1.6932
Epoch 1/1... Steps 1750     Discriminator Loss: 1.1819... Generator Loss: 0.6124
Epoch 1/1... Steps 1760     Discriminator Loss: 0.5604... Generator Loss: 1.8274
Epoch 1/1... Steps 1770     Discriminator Loss: 0.7950... Generator Loss: 1.2108
Epoch 1/1... Steps 1780     Discriminator Loss: 1.3320... Generator Loss: 0.6260
Epoch 1/1... Steps 1790     Discriminator Loss: 0.9673... Generator Loss: 0.8692
Epoch 1/1... Steps 1800     Discriminator Loss: 1.3833... Generator Loss: 0.7072
Epoch 1/1... Steps 1810     Discriminator Loss: 0.7275... Generator Loss: 1.3991
Epoch 1/1... Steps 1820     Discriminator Loss: 0.5675... Generator Loss: 1.9196
Epoch 1/1... Steps 1830     Discriminator Loss: 1.3910... Generator Loss: 0.4891
Epoch 1/1... Steps 1840     Discriminator Loss: 1.8888... Generator Loss: 2.4176
Epoch 1/1... Steps 1850     Discriminator Loss: 1.3460... Generator Loss: 0.5820
Epoch 1/1... Steps 1860     Discriminator Loss: 1.0225... Generator Loss: 1.7336
Epoch 1/1... Steps 1870     Discriminator Loss: 1.3475... Generator Loss: 1.4083
Epoch 1/1... Steps 1880     Discriminator Loss: 0.9868... Generator Loss: 2.9572
Epoch 1/1... Steps 1890     Discriminator Loss: 0.4278... Generator Loss: 3.9298
Epoch 1/1... Steps 1900     Discriminator Loss: 0.4991... Generator Loss: 2.2822
Epoch 1/1... Steps 1910     Discriminator Loss: 0.5057... Generator Loss: 1.9599
Epoch 1/1... Steps 1920     Discriminator Loss: 0.9695... Generator Loss: 1.0137
Epoch 1/1... Steps 1930     Discriminator Loss: 1.9264... Generator Loss: 0.2429
Epoch 1/1... Steps 1940     Discriminator Loss: 1.3394... Generator Loss: 0.6516
Epoch 1/1... Steps 1950     Discriminator Loss: 1.2003... Generator Loss: 1.3349
Epoch 1/1... Steps 1960     Discriminator Loss: 0.7562... Generator Loss: 3.1782
Epoch 1/1... Steps 1970     Discriminator Loss: 1.1325... Generator Loss: 0.7349
Epoch 1/1... Steps 1980     Discriminator Loss: 1.1730... Generator Loss: 0.6225
Epoch 1/1... Steps 1990     Discriminator Loss: 0.9957... Generator Loss: 1.4482
Epoch 1/1... Steps 2000     Discriminator Loss: 0.4115... Generator Loss: 2.9090
Epoch 1/1... Steps 2010     Discriminator Loss: 1.5673... Generator Loss: 0.3602
Epoch 1/1... Steps 2020     Discriminator Loss: 0.5932... Generator Loss: 2.0101
Epoch 1/1... Steps 2030     Discriminator Loss: 1.5548... Generator Loss: 3.3511
Epoch 1/1... Steps 2040     Discriminator Loss: 0.5265... Generator Loss: 2.8462
Epoch 1/1... Steps 2050     Discriminator Loss: 1.0668... Generator Loss: 0.6728
Epoch 1/1... Steps 2060     Discriminator Loss: 1.5450... Generator Loss: 1.6903
Epoch 1/1... Steps 2070     Discriminator Loss: 0.7422... Generator Loss: 1.2617
Epoch 1/1... Steps 2080     Discriminator Loss: 1.5543... Generator Loss: 1.9946
Epoch 1/1... Steps 2090     Discriminator Loss: 0.6303... Generator Loss: 1.5215
Epoch 1/1... Steps 2100     Discriminator Loss: 1.2294... Generator Loss: 0.7769
Epoch 1/1... Steps 2110     Discriminator Loss: 1.0802... Generator Loss: 0.8806
Epoch 1/1... Steps 2120     Discriminator Loss: 0.7730... Generator Loss: 3.8596
Epoch 1/1... Steps 2130     Discriminator Loss: 0.6100... Generator Loss: 1.5448
Epoch 1/1... Steps 2140     Discriminator Loss: 1.3148... Generator Loss: 0.5563
Epoch 1/1... Steps 2150     Discriminator Loss: 1.0770... Generator Loss: 0.9279
Epoch 1/1... Steps 2160     Discriminator Loss: 1.2508... Generator Loss: 0.5438
Epoch 1/1... Steps 2170     Discriminator Loss: 0.5460... Generator Loss: 1.9367
Epoch 1/1... Steps 2180     Discriminator Loss: 0.5533... Generator Loss: 1.9813
Epoch 1/1... Steps 2190     Discriminator Loss: 0.4728... Generator Loss: 2.4176
Epoch 1/1... Steps 2200     Discriminator Loss: 1.4346... Generator Loss: 0.4674
Epoch 1/1... Steps 2210     Discriminator Loss: 1.6859... Generator Loss: 2.2997
Epoch 1/1... Steps 2220     Discriminator Loss: 0.9987... Generator Loss: 1.7824
Epoch 1/1... Steps 2230     Discriminator Loss: 1.3786... Generator Loss: 0.4985
Epoch 1/1... Steps 2240     Discriminator Loss: 0.4353... Generator Loss: 3.9994
Epoch 1/1... Steps 2250     Discriminator Loss: 1.4320... Generator Loss: 0.5115
Epoch 1/1... Steps 2260     Discriminator Loss: 1.1357... Generator Loss: 0.8907
Epoch 1/1... Steps 2270     Discriminator Loss: 1.2285... Generator Loss: 1.3269
Epoch 1/1... Steps 2280     Discriminator Loss: 0.6809... Generator Loss: 1.6576
Epoch 1/1... Steps 2290     Discriminator Loss: 1.1911... Generator Loss: 0.6509
Epoch 1/1... Steps 2300     Discriminator Loss: 0.7702... Generator Loss: 1.1901
Epoch 1/1... Steps 2310     Discriminator Loss: 1.2569... Generator Loss: 0.7168
Epoch 1/1... Steps 2320     Discriminator Loss: 1.4981... Generator Loss: 0.4412
Epoch 1/1... Steps 2330     Discriminator Loss: 0.7676... Generator Loss: 1.0812
Epoch 1/1... Steps 2340     Discriminator Loss: 1.6108... Generator Loss: 0.4847
Epoch 1/1... Steps 2350     Discriminator Loss: 1.2774... Generator Loss: 0.6380
Epoch 1/1... Steps 2360     Discriminator Loss: 1.2399... Generator Loss: 0.6780
Epoch 1/1... Steps 2370     Discriminator Loss: 0.8931... Generator Loss: 0.8203
Epoch 1/1... Steps 2380     Discriminator Loss: 1.4624... Generator Loss: 2.5848
Epoch 1/1... Steps 2390     Discriminator Loss: 1.0718... Generator Loss: 0.6601
Epoch 1/1... Steps 2400     Discriminator Loss: 0.7919... Generator Loss: 2.8437
Epoch 1/1... Steps 2410     Discriminator Loss: 3.0725... Generator Loss: 3.7755
Epoch 1/1... Steps 2420     Discriminator Loss: 1.2781... Generator Loss: 0.7030
Epoch 1/1... Steps 2430     Discriminator Loss: 1.2326... Generator Loss: 0.9257
Epoch 1/1... Steps 2440     Discriminator Loss: 1.1907... Generator Loss: 1.1795
Epoch 1/1... Steps 2450     Discriminator Loss: 1.0139... Generator Loss: 0.8184
Epoch 1/1... Steps 2460     Discriminator Loss: 1.4630... Generator Loss: 3.3548
Epoch 1/1... Steps 2470     Discriminator Loss: 1.7225... Generator Loss: 3.5003
Epoch 1/1... Steps 2480     Discriminator Loss: 0.8102... Generator Loss: 1.2361
Epoch 1/1... Steps 2490     Discriminator Loss: 0.4602... Generator Loss: 3.4244
Epoch 1/1... Steps 2500     Discriminator Loss: 1.1919... Generator Loss: 0.9504
Epoch 1/1... Steps 2510     Discriminator Loss: 1.4425... Generator Loss: 1.4036
Epoch 1/1... Steps 2520     Discriminator Loss: 1.1161... Generator Loss: 0.7742
Epoch 1/1... Steps 2530     Discriminator Loss: 1.0489... Generator Loss: 1.4405
Epoch 1/1... Steps 2540     Discriminator Loss: 0.6586... Generator Loss: 1.4877
Epoch 1/1... Steps 2550     Discriminator Loss: 1.2091... Generator Loss: 0.6345
Epoch 1/1... Steps 2560     Discriminator Loss: 1.6484... Generator Loss: 0.4686
Epoch 1/1... Steps 2570     Discriminator Loss: 0.5036... Generator Loss: 2.2927
Epoch 1/1... Steps 2580     Discriminator Loss: 0.9695... Generator Loss: 0.9304
Epoch 1/1... Steps 2590     Discriminator Loss: 0.5219... Generator Loss: 2.4582
Epoch 1/1... Steps 2600     Discriminator Loss: 1.5300... Generator Loss: 0.4016
Epoch 1/1... Steps 2610     Discriminator Loss: 1.2651... Generator Loss: 0.6180
Epoch 1/1... Steps 2620     Discriminator Loss: 1.5422... Generator Loss: 2.3177
Epoch 1/1... Steps 2630     Discriminator Loss: 0.6840... Generator Loss: 2.4985
Epoch 1/1... Steps 2640     Discriminator Loss: 0.5202... Generator Loss: 2.3622
Epoch 1/1... Steps 2650     Discriminator Loss: 0.4188... Generator Loss: 2.8673
Epoch 1/1... Steps 2660     Discriminator Loss: 0.3846... Generator Loss: 3.2360
Epoch 1/1... Steps 2670     Discriminator Loss: 0.9040... Generator Loss: 0.8571
Epoch 1/1... Steps 2680     Discriminator Loss: 0.5478... Generator Loss: 2.5315
Epoch 1/1... Steps 2690     Discriminator Loss: 0.8572... Generator Loss: 1.1308
Epoch 1/1... Steps 2700     Discriminator Loss: 0.4190... Generator Loss: 2.6871
Epoch 1/1... Steps 2710     Discriminator Loss: 1.1183... Generator Loss: 1.5960
Epoch 1/1... Steps 2720     Discriminator Loss: 1.1822... Generator Loss: 0.8195
Epoch 1/1... Steps 2730     Discriminator Loss: 0.6744... Generator Loss: 1.5683
Epoch 1/1... Steps 2740     Discriminator Loss: 1.1459... Generator Loss: 1.0508
Epoch 1/1... Steps 2750     Discriminator Loss: 1.0121... Generator Loss: 0.8140
Epoch 1/1... Steps 2760     Discriminator Loss: 0.4845... Generator Loss: 2.6064
Epoch 1/1... Steps 2770     Discriminator Loss: 0.7577... Generator Loss: 1.0867
Epoch 1/1... Steps 2780     Discriminator Loss: 1.0810... Generator Loss: 1.2144
Epoch 1/1... Steps 2790     Discriminator Loss: 1.0805... Generator Loss: 2.3460
Epoch 1/1... Steps 2800     Discriminator Loss: 0.8282... Generator Loss: 1.7875
Epoch 1/1... Steps 2810     Discriminator Loss: 1.0056... Generator Loss: 3.7077
Epoch 1/1... Steps 2820     Discriminator Loss: 0.4546... Generator Loss: 2.5747
Epoch 1/1... Steps 2830     Discriminator Loss: 0.5775... Generator Loss: 1.7731
Epoch 1/1... Steps 2840     Discriminator Loss: 1.3999... Generator Loss: 0.4524
Epoch 1/1... Steps 2850     Discriminator Loss: 1.3585... Generator Loss: 0.4918
Epoch 1/1... Steps 2860     Discriminator Loss: 1.8595... Generator Loss: 2.4058
Epoch 1/1... Steps 2870     Discriminator Loss: 0.6246... Generator Loss: 1.6418
Epoch 1/1... Steps 2880     Discriminator Loss: 1.5820... Generator Loss: 2.4660
Epoch 1/1... Steps 2890     Discriminator Loss: 1.2142... Generator Loss: 1.2854
Epoch 1/1... Steps 2900     Discriminator Loss: 0.3710... Generator Loss: 3.5369
Epoch 1/1... Steps 2910     Discriminator Loss: 0.5064... Generator Loss: 3.0870
Epoch 1/1... Steps 2920     Discriminator Loss: 2.3483... Generator Loss: 0.1980
Epoch 1/1... Steps 2930     Discriminator Loss: 0.7676... Generator Loss: 1.9459
Epoch 1/1... Steps 2940     Discriminator Loss: 1.0906... Generator Loss: 1.1323
Epoch 1/1... Steps 2950     Discriminator Loss: 0.7587... Generator Loss: 3.9253
Epoch 1/1... Steps 2960     Discriminator Loss: 1.2371... Generator Loss: 2.0710
Epoch 1/1... Steps 2970     Discriminator Loss: 1.0751... Generator Loss: 1.0798
Epoch 1/1... Steps 2980     Discriminator Loss: 0.4098... Generator Loss: 3.4869
Epoch 1/1... Steps 2990     Discriminator Loss: 0.4625... Generator Loss: 2.6676
Epoch 1/1... Steps 3000     Discriminator Loss: 0.4587... Generator Loss: 2.2942
Epoch 1/1... Steps 3010     Discriminator Loss: 0.5631... Generator Loss: 2.6843
Epoch 1/1... Steps 3020     Discriminator Loss: 1.1814... Generator Loss: 0.6287
Epoch 1/1... Steps 3030     Discriminator Loss: 1.0264... Generator Loss: 0.9188
Epoch 1/1... Steps 3040     Discriminator Loss: 0.9492... Generator Loss: 1.4638
Epoch 1/1... Steps 3050     Discriminator Loss: 0.5480... Generator Loss: 2.0594
Epoch 1/1... Steps 3060     Discriminator Loss: 1.1851... Generator Loss: 0.5320
Epoch 1/1... Steps 3070     Discriminator Loss: 0.8002... Generator Loss: 2.8637
Epoch 1/1... Steps 3080     Discriminator Loss: 0.9069... Generator Loss: 1.8988
Epoch 1/1... Steps 3090     Discriminator Loss: 1.3556... Generator Loss: 0.7372
Epoch 1/1... Steps 3100     Discriminator Loss: 1.1826... Generator Loss: 0.8353
Epoch 1/1... Steps 3110     Discriminator Loss: 1.3601... Generator Loss: 0.5731
Epoch 1/1... Steps 3120     Discriminator Loss: 1.3351... Generator Loss: 0.5433
Epoch 1/1... Steps 3130     Discriminator Loss: 1.1120... Generator Loss: 0.7759
Epoch 1/1... Steps 3140     Discriminator Loss: 1.6029... Generator Loss: 0.4301
Epoch 1/1... Steps 3150     Discriminator Loss: 1.0210... Generator Loss: 0.8620
Epoch 1/1... Steps 3160     Discriminator Loss: 0.7815... Generator Loss: 1.7187
Epoch 1/1... Steps 3170     Discriminator Loss: 0.4364... Generator Loss: 2.4848
Epoch 1/1... Steps 3180     Discriminator Loss: 0.8468... Generator Loss: 1.3178
Epoch 1/1... Steps 3190     Discriminator Loss: 1.3005... Generator Loss: 0.5952
Epoch 1/1... Steps 3200     Discriminator Loss: 1.1942... Generator Loss: 1.3123
Epoch 1/1... Steps 3210     Discriminator Loss: 1.0102... Generator Loss: 1.7759
Epoch 1/1... Steps 3220     Discriminator Loss: 1.2772... Generator Loss: 1.4217
Epoch 1/1... Steps 3230     Discriminator Loss: 1.1464... Generator Loss: 0.5999
Epoch 1/1... Steps 3240     Discriminator Loss: 0.8191... Generator Loss: 1.1146
Epoch 1/1... Steps 3250     Discriminator Loss: 0.5102... Generator Loss: 2.5463
Epoch 1/1... Steps 3260     Discriminator Loss: 0.5983... Generator Loss: 2.7534
Epoch 1/1... Steps 3270     Discriminator Loss: 1.4240... Generator Loss: 4.0376
Epoch 1/1... Steps 3280     Discriminator Loss: 1.2726... Generator Loss: 5.2025
Epoch 1/1... Steps 3290     Discriminator Loss: 0.8933... Generator Loss: 0.8183
Epoch 1/1... Steps 3300     Discriminator Loss: 1.2277... Generator Loss: 1.1293
Epoch 1/1... Steps 3310     Discriminator Loss: 1.2105... Generator Loss: 0.8286
Epoch 1/1... Steps 3320     Discriminator Loss: 0.7111... Generator Loss: 3.0374
Epoch 1/1... Steps 3330     Discriminator Loss: 1.0712... Generator Loss: 0.8823
Epoch 1/1... Steps 3340     Discriminator Loss: 0.7295... Generator Loss: 1.5118
Epoch 1/1... Steps 3350     Discriminator Loss: 0.6275... Generator Loss: 2.2930
Epoch 1/1... Steps 3360     Discriminator Loss: 0.9566... Generator Loss: 1.1316
Epoch 1/1... Steps 3370     Discriminator Loss: 0.4856... Generator Loss: 2.2751
Epoch 1/1... Steps 3380     Discriminator Loss: 0.9648... Generator Loss: 1.6327
Epoch 1/1... Steps 3390     Discriminator Loss: 0.7869... Generator Loss: 3.9014
Epoch 1/1... Steps 3400     Discriminator Loss: 1.2879... Generator Loss: 0.6322
Epoch 1/1... Steps 3410     Discriminator Loss: 1.4927... Generator Loss: 0.4289
Epoch 1/1... Steps 3420     Discriminator Loss: 1.5287... Generator Loss: 1.6432
Epoch 1/1... Steps 3430     Discriminator Loss: 0.5957... Generator Loss: 3.5948
Epoch 1/1... Steps 3440     Discriminator Loss: 1.1152... Generator Loss: 0.7854
Epoch 1/1... Steps 3450     Discriminator Loss: 1.5027... Generator Loss: 2.4164
Epoch 1/1... Steps 3460     Discriminator Loss: 0.6665... Generator Loss: 2.2321
Epoch 1/1... Steps 3470     Discriminator Loss: 1.0926... Generator Loss: 1.1861
Epoch 1/1... Steps 3480     Discriminator Loss: 0.9638... Generator Loss: 1.0005
Epoch 1/1... Steps 3490     Discriminator Loss: 0.4179... Generator Loss: 3.0232
Epoch 1/1... Steps 3500     Discriminator Loss: 1.3851... Generator Loss: 0.4539
Epoch 1/1... Steps 3510     Discriminator Loss: 0.4323... Generator Loss: 3.5615
Epoch 1/1... Steps 3520     Discriminator Loss: 0.7435... Generator Loss: 1.4884
Epoch 1/1... Steps 3530     Discriminator Loss: 1.0975... Generator Loss: 1.7551
Epoch 1/1... Steps 3540     Discriminator Loss: 0.6111... Generator Loss: 1.5589
Epoch 1/1... Steps 3550     Discriminator Loss: 1.4174... Generator Loss: 0.5532
Epoch 1/1... Steps 3560     Discriminator Loss: 0.4945... Generator Loss: 2.3821
Epoch 1/1... Steps 3570     Discriminator Loss: 1.3588... Generator Loss: 4.7851
Epoch 1/1... Steps 3580     Discriminator Loss: 1.2599... Generator Loss: 0.7352
Epoch 1/1... Steps 3590     Discriminator Loss: 1.2774... Generator Loss: 0.5025
Epoch 1/1... Steps 3600     Discriminator Loss: 1.3455... Generator Loss: 0.4745
Epoch 1/1... Steps 3610     Discriminator Loss: 1.1110... Generator Loss: 0.7319
Epoch 1/1... Steps 3620     Discriminator Loss: 0.8763... Generator Loss: 1.9839
Epoch 1/1... Steps 3630     Discriminator Loss: 0.5936... Generator Loss: 2.2822
Epoch 1/1... Steps 3640     Discriminator Loss: 1.0698... Generator Loss: 1.2439
Epoch 1/1... Steps 3650     Discriminator Loss: 1.0299... Generator Loss: 0.8573
Epoch 1/1... Steps 3660     Discriminator Loss: 0.8599... Generator Loss: 1.2883
Epoch 1/1... Steps 3670     Discriminator Loss: 0.7216... Generator Loss: 2.0289
Epoch 1/1... Steps 3680     Discriminator Loss: 1.0356... Generator Loss: 0.8334
Epoch 1/1... Steps 3690     Discriminator Loss: 0.3931... Generator Loss: 3.0572
Epoch 1/1... Steps 3700     Discriminator Loss: 1.1581... Generator Loss: 0.6763
Epoch 1/1... Steps 3710     Discriminator Loss: 0.6741... Generator Loss: 2.1863
Epoch 1/1... Steps 3720     Discriminator Loss: 1.1207... Generator Loss: 1.4093
Epoch 1/1... Steps 3730     Discriminator Loss: 1.1862... Generator Loss: 0.6696
Epoch 1/1... Steps 3740     Discriminator Loss: 1.0136... Generator Loss: 1.1001
Epoch 1/1... Steps 3750     Discriminator Loss: 0.6727... Generator Loss: 1.5586
Epoch 1/1... Steps 3760     Discriminator Loss: 0.4980... Generator Loss: 2.3967
Epoch 1/1... Steps 3770     Discriminator Loss: 1.0045... Generator Loss: 1.4368
Epoch 1/1... Steps 3780     Discriminator Loss: 1.2756... Generator Loss: 0.8394
Epoch 1/1... Steps 3790     Discriminator Loss: 1.5590... Generator Loss: 1.0612
Epoch 1/1... Steps 3800     Discriminator Loss: 0.9917... Generator Loss: 1.1136
Epoch 1/1... Steps 3810     Discriminator Loss: 1.1255... Generator Loss: 0.7233
Epoch 1/1... Steps 3820     Discriminator Loss: 1.6046... Generator Loss: 0.4615
Epoch 1/1... Steps 3830     Discriminator Loss: 1.6046... Generator Loss: 0.3149
Epoch 1/1... Steps 3840     Discriminator Loss: 2.4152... Generator Loss: 2.5530
Epoch 1/1... Steps 3850     Discriminator Loss: 0.6194... Generator Loss: 3.6268
Epoch 1/1... Steps 3860     Discriminator Loss: 1.0285... Generator Loss: 0.7872
Epoch 1/1... Steps 3870     Discriminator Loss: 1.1190... Generator Loss: 0.6709
Epoch 1/1... Steps 3880     Discriminator Loss: 0.8186... Generator Loss: 1.4082
Epoch 1/1... Steps 3890     Discriminator Loss: 0.9156... Generator Loss: 1.2356
Epoch 1/1... Steps 3900     Discriminator Loss: 1.2963... Generator Loss: 1.2979
Epoch 1/1... Steps 3910     Discriminator Loss: 0.9401... Generator Loss: 0.9476
Epoch 1/1... Steps 3920     Discriminator Loss: 0.7969... Generator Loss: 1.1695
Epoch 1/1... Steps 3930     Discriminator Loss: 1.4797... Generator Loss: 0.4601
Epoch 1/1... Steps 3940     Discriminator Loss: 1.4015... Generator Loss: 0.7204
Epoch 1/1... Steps 3950     Discriminator Loss: 1.1724... Generator Loss: 1.2583
Epoch 1/1... Steps 3960     Discriminator Loss: 0.5225... Generator Loss: 2.1078
Epoch 1/1... Steps 3970     Discriminator Loss: 1.5431... Generator Loss: 0.4541
Epoch 1/1... Steps 3980     Discriminator Loss: 1.2595... Generator Loss: 0.6974
Epoch 1/1... Steps 3990     Discriminator Loss: 1.2120... Generator Loss: 0.6853
Epoch 1/1... Steps 4000     Discriminator Loss: 1.5864... Generator Loss: 2.4349
Epoch 1/1... Steps 4010     Discriminator Loss: 2.1013... Generator Loss: 0.3119
Epoch 1/1... Steps 4020     Discriminator Loss: 0.7439... Generator Loss: 1.1786
Epoch 1/1... Steps 4030     Discriminator Loss: 1.1697... Generator Loss: 0.7996
Epoch 1/1... Steps 4040     Discriminator Loss: 1.3162... Generator Loss: 1.3077
Epoch 1/1... Steps 4050     Discriminator Loss: 1.0457... Generator Loss: 1.2965
Epoch 1/1... Steps 4060     Discriminator Loss: 0.8119... Generator Loss: 1.3301
Epoch 1/1... Steps 4070     Discriminator Loss: 1.0891... Generator Loss: 1.1180
Epoch 1/1... Steps 4080     Discriminator Loss: 1.1807... Generator Loss: 0.7267
Epoch 1/1... Steps 4090     Discriminator Loss: 1.1653... Generator Loss: 0.8189
Epoch 1/1... Steps 4100     Discriminator Loss: 0.5276... Generator Loss: 2.6737
Epoch 1/1... Steps 4110     Discriminator Loss: 1.1376... Generator Loss: 2.8078
Epoch 1/1... Steps 4120     Discriminator Loss: 1.0575... Generator Loss: 1.0542
Epoch 1/1... Steps 4130     Discriminator Loss: 1.0651... Generator Loss: 0.8108
Epoch 1/1... Steps 4140     Discriminator Loss: 1.7968... Generator Loss: 0.4015
Epoch 1/1... Steps 4150     Discriminator Loss: 1.3469... Generator Loss: 0.5511
Epoch 1/1... Steps 4160     Discriminator Loss: 1.2039... Generator Loss: 1.4754
Epoch 1/1... Steps 4170     Discriminator Loss: 0.9647... Generator Loss: 1.3468
Epoch 1/1... Steps 4180     Discriminator Loss: 1.4886... Generator Loss: 0.4950
Epoch 1/1... Steps 4190     Discriminator Loss: 1.2466... Generator Loss: 1.3159
Epoch 1/1... Steps 4200     Discriminator Loss: 1.2546... Generator Loss: 0.7051
Epoch 1/1... Steps 4210     Discriminator Loss: 1.2681... Generator Loss: 1.0753
Epoch 1/1... Steps 4220     Discriminator Loss: 0.7236... Generator Loss: 2.2678
Epoch 1/1... Steps 4230     Discriminator Loss: 0.5210... Generator Loss: 2.1159
Epoch 1/1... Steps 4240     Discriminator Loss: 1.2167... Generator Loss: 0.7547
Epoch 1/1... Steps 4250     Discriminator Loss: 1.3003... Generator Loss: 0.5706
Epoch 1/1... Steps 4260     Discriminator Loss: 1.1514... Generator Loss: 1.5126
Epoch 1/1... Steps 4270     Discriminator Loss: 1.5120... Generator Loss: 0.5531
Epoch 1/1... Steps 4280     Discriminator Loss: 1.2922... Generator Loss: 0.7026
Epoch 1/1... Steps 4290     Discriminator Loss: 0.6849... Generator Loss: 1.9238
Epoch 1/1... Steps 4300     Discriminator Loss: 0.7111... Generator Loss: 2.1786
Epoch 1/1... Steps 4310     Discriminator Loss: 1.4215... Generator Loss: 2.6153
Epoch 1/1... Steps 4320     Discriminator Loss: 0.8762... Generator Loss: 0.9435
Epoch 1/1... Steps 4330     Discriminator Loss: 1.3002... Generator Loss: 0.7023
Epoch 1/1... Steps 4340     Discriminator Loss: 1.9168... Generator Loss: 2.1931
Epoch 1/1... Steps 4350     Discriminator Loss: 0.6834... Generator Loss: 1.4648
Epoch 1/1... Steps 4360     Discriminator Loss: 1.9009... Generator Loss: 0.2978
Epoch 1/1... Steps 4370     Discriminator Loss: 1.0435... Generator Loss: 0.9357
Epoch 1/1... Steps 4380     Discriminator Loss: 1.0254... Generator Loss: 0.7324
Epoch 1/1... Steps 4390     Discriminator Loss: 0.4991... Generator Loss: 2.7518
Epoch 1/1... Steps 4400     Discriminator Loss: 0.5409... Generator Loss: 1.8911
Epoch 1/1... Steps 4410     Discriminator Loss: 0.8018... Generator Loss: 1.3450
Epoch 1/1... Steps 4420     Discriminator Loss: 0.4871... Generator Loss: 2.3704
Epoch 1/1... Steps 4430     Discriminator Loss: 1.3267... Generator Loss: 0.5981
Epoch 1/1... Steps 4440     Discriminator Loss: 1.1648... Generator Loss: 1.0368
Epoch 1/1... Steps 4450     Discriminator Loss: 1.2003... Generator Loss: 0.8087
Epoch 1/1... Steps 4460     Discriminator Loss: 1.0597... Generator Loss: 1.3060
Epoch 1/1... Steps 4470     Discriminator Loss: 1.1660... Generator Loss: 0.7972
Epoch 1/1... Steps 4480     Discriminator Loss: 1.2147... Generator Loss: 0.8114
Epoch 1/1... Steps 4490     Discriminator Loss: 0.8926... Generator Loss: 1.4139
Epoch 1/1... Steps 4500     Discriminator Loss: 0.6317... Generator Loss: 1.3285
Epoch 1/1... Steps 4510     Discriminator Loss: 1.3617... Generator Loss: 0.7310
Epoch 1/1... Steps 4520     Discriminator Loss: 1.2219... Generator Loss: 0.6628
Epoch 1/1... Steps 4530     Discriminator Loss: 0.9081... Generator Loss: 2.5763
Epoch 1/1... Steps 4540     Discriminator Loss: 1.7976... Generator Loss: 0.2980
Epoch 1/1... Steps 4550     Discriminator Loss: 1.2327... Generator Loss: 0.6911
Epoch 1/1... Steps 4560     Discriminator Loss: 0.7342... Generator Loss: 1.2699
Epoch 1/1... Steps 4570     Discriminator Loss: 1.5304... Generator Loss: 0.4894
Epoch 1/1... Steps 4580     Discriminator Loss: 1.0482... Generator Loss: 0.7618
Epoch 1/1... Steps 4590     Discriminator Loss: 1.2508... Generator Loss: 1.3130
Epoch 1/1... Steps 4600     Discriminator Loss: 1.1340... Generator Loss: 0.9887
Epoch 1/1... Steps 4610     Discriminator Loss: 1.0187... Generator Loss: 0.7703
Epoch 1/1... Steps 4620     Discriminator Loss: 0.6130... Generator Loss: 2.3291
Epoch 1/1... Steps 4630     Discriminator Loss: 0.7976... Generator Loss: 1.2191
Epoch 1/1... Steps 4640     Discriminator Loss: 1.7684... Generator Loss: 2.2590
Epoch 1/1... Steps 4650     Discriminator Loss: 1.4785... Generator Loss: 0.4258
Epoch 1/1... Steps 4660     Discriminator Loss: 0.8433... Generator Loss: 1.4092
Epoch 1/1... Steps 4670     Discriminator Loss: 1.1303... Generator Loss: 0.6670
Epoch 1/1... Steps 4680     Discriminator Loss: 1.6218... Generator Loss: 0.4846
Epoch 1/1... Steps 4690     Discriminator Loss: 1.4461... Generator Loss: 2.2634
Epoch 1/1... Steps 4700     Discriminator Loss: 1.7217... Generator Loss: 0.2678
Epoch 1/1... Steps 4710     Discriminator Loss: 1.1701... Generator Loss: 0.7267
Epoch 1/1... Steps 4720     Discriminator Loss: 0.6243... Generator Loss: 2.4923
Epoch 1/1... Steps 4730     Discriminator Loss: 0.9640... Generator Loss: 0.8616
Epoch 1/1... Steps 4740     Discriminator Loss: 1.0700... Generator Loss: 0.9432
Epoch 1/1... Steps 4750     Discriminator Loss: 0.4406... Generator Loss: 2.4372
Epoch 1/1... Steps 4760     Discriminator Loss: 1.4176... Generator Loss: 1.8218
Epoch 1/1... Steps 4770     Discriminator Loss: 0.4272... Generator Loss: 3.6214
Epoch 1/1... Steps 4780     Discriminator Loss: 1.2887... Generator Loss: 0.4643
Epoch 1/1... Steps 4790     Discriminator Loss: 0.5840... Generator Loss: 2.0828
Epoch 1/1... Steps 4800     Discriminator Loss: 1.1268... Generator Loss: 0.7610
Epoch 1/1... Steps 4810     Discriminator Loss: 0.9577... Generator Loss: 1.0860
Epoch 1/1... Steps 4820     Discriminator Loss: 0.9135... Generator Loss: 1.1032
Epoch 1/1... Steps 4830     Discriminator Loss: 2.2481... Generator Loss: 0.2088
Epoch 1/1... Steps 4840     Discriminator Loss: 0.9826... Generator Loss: 0.7514
Epoch 1/1... Steps 4850     Discriminator Loss: 0.9413... Generator Loss: 0.8545
Epoch 1/1... Steps 4860     Discriminator Loss: 0.8102... Generator Loss: 1.6229
Epoch 1/1... Steps 4870     Discriminator Loss: 0.9137... Generator Loss: 0.9249
Epoch 1/1... Steps 4880     Discriminator Loss: 1.3912... Generator Loss: 2.6779
Epoch 1/1... Steps 4890     Discriminator Loss: 0.8301... Generator Loss: 1.2370
Epoch 1/1... Steps 4900     Discriminator Loss: 1.3039... Generator Loss: 1.4974
Epoch 1/1... Steps 4910     Discriminator Loss: 0.8126... Generator Loss: 1.2546
Epoch 1/1... Steps 4920     Discriminator Loss: 0.6452... Generator Loss: 1.4262
Epoch 1/1... Steps 4930     Discriminator Loss: 1.1591... Generator Loss: 1.2452
Epoch 1/1... Steps 4940     Discriminator Loss: 1.0848... Generator Loss: 0.7852
Epoch 1/1... Steps 4950     Discriminator Loss: 1.1640... Generator Loss: 0.8640
Epoch 1/1... Steps 4960     Discriminator Loss: 0.8866... Generator Loss: 1.2086
Epoch 1/1... Steps 4970     Discriminator Loss: 1.0596... Generator Loss: 2.6133
Epoch 1/1... Steps 4980     Discriminator Loss: 1.6261... Generator Loss: 1.9535
Epoch 1/1... Steps 4990     Discriminator Loss: 1.1821... Generator Loss: 0.8935
Epoch 1/1... Steps 5000     Discriminator Loss: 2.2971... Generator Loss: 2.8225
Epoch 1/1... Steps 5010     Discriminator Loss: 1.2265... Generator Loss: 0.5853
Epoch 1/1... Steps 5020     Discriminator Loss: 0.9364... Generator Loss: 2.9736
Epoch 1/1... Steps 5030     Discriminator Loss: 1.7225... Generator Loss: 1.9237
Epoch 1/1... Steps 5040     Discriminator Loss: 1.2542... Generator Loss: 1.2536
Epoch 1/1... Steps 5050     Discriminator Loss: 0.4465... Generator Loss: 4.1836
Epoch 1/1... Steps 5060     Discriminator Loss: 0.7135... Generator Loss: 2.6284
Epoch 1/1... Steps 5070     Discriminator Loss: 0.4972... Generator Loss: 2.4419
Epoch 1/1... Steps 5080     Discriminator Loss: 1.2094... Generator Loss: 2.1892
Epoch 1/1... Steps 5090     Discriminator Loss: 0.9626... Generator Loss: 1.1649
Epoch 1/1... Steps 5100     Discriminator Loss: 0.9640... Generator Loss: 1.3808
Epoch 1/1... Steps 5110     Discriminator Loss: 0.7118... Generator Loss: 1.6217
Epoch 1/1... Steps 5120     Discriminator Loss: 1.2598... Generator Loss: 0.7918
Epoch 1/1... Steps 5130     Discriminator Loss: 1.0730... Generator Loss: 0.9973
Epoch 1/1... Steps 5140     Discriminator Loss: 1.2075... Generator Loss: 1.3329
Epoch 1/1... Steps 5150     Discriminator Loss: 1.2104... Generator Loss: 1.2412
Epoch 1/1... Steps 5160     Discriminator Loss: 1.1755... Generator Loss: 0.9418
Epoch 1/1... Steps 5170     Discriminator Loss: 1.4384... Generator Loss: 2.1331
Epoch 1/1... Steps 5180     Discriminator Loss: 1.1086... Generator Loss: 0.9910
Epoch 1/1... Steps 5190     Discriminator Loss: 1.2482... Generator Loss: 0.8432
Epoch 1/1... Steps 5200     Discriminator Loss: 1.1222... Generator Loss: 0.7812
Epoch 1/1... Steps 5210     Discriminator Loss: 1.0731... Generator Loss: 0.9628
Epoch 1/1... Steps 5220     Discriminator Loss: 1.1515... Generator Loss: 0.5984
Epoch 1/1... Steps 5230     Discriminator Loss: 1.0227... Generator Loss: 0.6993
Epoch 1/1... Steps 5240     Discriminator Loss: 0.9916... Generator Loss: 0.9706
Epoch 1/1... Steps 5250     Discriminator Loss: 1.9697... Generator Loss: 0.2627
Epoch 1/1... Steps 5260     Discriminator Loss: 1.1917... Generator Loss: 0.8114
Epoch 1/1... Steps 5270     Discriminator Loss: 1.6666... Generator Loss: 0.3049
Epoch 1/1... Steps 5280     Discriminator Loss: 0.6180... Generator Loss: 1.6286
Epoch 1/1... Steps 5290     Discriminator Loss: 1.0701... Generator Loss: 1.0729
Epoch 1/1... Steps 5300     Discriminator Loss: 1.2841... Generator Loss: 0.8313
Epoch 1/1... Steps 5310     Discriminator Loss: 1.3054... Generator Loss: 0.6496
Epoch 1/1... Steps 5320     Discriminator Loss: 1.1925... Generator Loss: 0.6297
Epoch 1/1... Steps 5330     Discriminator Loss: 1.1354... Generator Loss: 1.3298
Epoch 1/1... Steps 5340     Discriminator Loss: 0.7368... Generator Loss: 1.5076
Epoch 1/1... Steps 5350     Discriminator Loss: 1.0825... Generator Loss: 1.0146
Epoch 1/1... Steps 5360     Discriminator Loss: 1.2483... Generator Loss: 0.7291
Epoch 1/1... Steps 5370     Discriminator Loss: 0.9088... Generator Loss: 1.2239
Epoch 1/1... Steps 5380     Discriminator Loss: 1.1322... Generator Loss: 0.8110
Epoch 1/1... Steps 5390     Discriminator Loss: 0.9885... Generator Loss: 1.0380
Epoch 1/1... Steps 5400     Discriminator Loss: 1.2178... Generator Loss: 0.7827
Epoch 1/1... Steps 5410     Discriminator Loss: 1.1838... Generator Loss: 1.1026
Epoch 1/1... Steps 5420     Discriminator Loss: 1.4760... Generator Loss: 1.1848
Epoch 1/1... Steps 5430     Discriminator Loss: 0.9002... Generator Loss: 1.8265
Epoch 1/1... Steps 5440     Discriminator Loss: 1.2763... Generator Loss: 0.6722
Epoch 1/1... Steps 5450     Discriminator Loss: 1.1829... Generator Loss: 1.1318
Epoch 1/1... Steps 5460     Discriminator Loss: 1.1746... Generator Loss: 0.7848
Epoch 1/1... Steps 5470     Discriminator Loss: 1.1513... Generator Loss: 0.8845
Epoch 1/1... Steps 5480     Discriminator Loss: 1.3497... Generator Loss: 0.5691
Epoch 1/1... Steps 5490     Discriminator Loss: 1.6888... Generator Loss: 2.0789
Epoch 1/1... Steps 5500     Discriminator Loss: 1.1669... Generator Loss: 0.8489
Epoch 1/1... Steps 5510     Discriminator Loss: 1.1878... Generator Loss: 0.5651
Epoch 1/1... Steps 5520     Discriminator Loss: 1.1459... Generator Loss: 0.9086
Epoch 1/1... Steps 5530     Discriminator Loss: 1.0350... Generator Loss: 0.7571
Epoch 1/1... Steps 5540     Discriminator Loss: 1.2966... Generator Loss: 1.3721
Epoch 1/1... Steps 5550     Discriminator Loss: 0.6000... Generator Loss: 1.7816
Epoch 1/1... Steps 5560     Discriminator Loss: 1.4474... Generator Loss: 0.6160
Epoch 1/1... Steps 5570     Discriminator Loss: 0.7450... Generator Loss: 1.3134
Epoch 1/1... Steps 5580     Discriminator Loss: 1.1152... Generator Loss: 0.9556
Epoch 1/1... Steps 5590     Discriminator Loss: 1.1960... Generator Loss: 0.9565
Epoch 1/1... Steps 5600     Discriminator Loss: 1.1371... Generator Loss: 0.9032
Epoch 1/1... Steps 5610     Discriminator Loss: 1.3308... Generator Loss: 0.6947
Epoch 1/1... Steps 5620     Discriminator Loss: 1.0874... Generator Loss: 0.6336
Epoch 1/1... Steps 5630     Discriminator Loss: 1.4245... Generator Loss: 1.7486
Epoch 1/1... Steps 5640     Discriminator Loss: 1.0249... Generator Loss: 0.9031
Epoch 1/1... Steps 5650     Discriminator Loss: 1.3357... Generator Loss: 0.6090
Epoch 1/1... Steps 5660     Discriminator Loss: 1.0442... Generator Loss: 1.1747
Epoch 1/1... Steps 5670     Discriminator Loss: 1.3725... Generator Loss: 0.5195
Epoch 1/1... Steps 5680     Discriminator Loss: 1.1940... Generator Loss: 0.9269
Epoch 1/1... Steps 5690     Discriminator Loss: 0.8260... Generator Loss: 1.5788
Epoch 1/1... Steps 5700     Discriminator Loss: 1.2338... Generator Loss: 1.2761
Epoch 1/1... Steps 5710     Discriminator Loss: 1.3429... Generator Loss: 1.1618
Epoch 1/1... Steps 5720     Discriminator Loss: 1.3386... Generator Loss: 1.2806
Epoch 1/1... Steps 5730     Discriminator Loss: 1.0315... Generator Loss: 1.4402
Epoch 1/1... Steps 5740     Discriminator Loss: 1.4134... Generator Loss: 0.4408
Epoch 1/1... Steps 5750     Discriminator Loss: 1.2047... Generator Loss: 0.6772
Epoch 1/1... Steps 5760     Discriminator Loss: 1.8705... Generator Loss: 1.7853
Epoch 1/1... Steps 5770     Discriminator Loss: 0.8176... Generator Loss: 2.3007
Epoch 1/1... Steps 5780     Discriminator Loss: 1.1924... Generator Loss: 1.3438
Epoch 1/1... Steps 5790     Discriminator Loss: 1.1907... Generator Loss: 0.8036
Epoch 1/1... Steps 5800     Discriminator Loss: 1.1971... Generator Loss: 0.9749
Epoch 1/1... Steps 5810     Discriminator Loss: 1.0833... Generator Loss: 1.8946
Epoch 1/1... Steps 5820     Discriminator Loss: 1.1253... Generator Loss: 1.3593
Epoch 1/1... Steps 5830     Discriminator Loss: 2.2224... Generator Loss: 0.1863
Epoch 1/1... Steps 5840     Discriminator Loss: 1.2383... Generator Loss: 0.5158
Epoch 1/1... Steps 5850     Discriminator Loss: 0.5931... Generator Loss: 1.7187
Epoch 1/1... Steps 5860     Discriminator Loss: 1.2081... Generator Loss: 0.6507
Epoch 1/1... Steps 5870     Discriminator Loss: 1.1090... Generator Loss: 1.1803
Epoch 1/1... Steps 5880     Discriminator Loss: 0.8480... Generator Loss: 1.0261
Epoch 1/1... Steps 5890     Discriminator Loss: 1.4196... Generator Loss: 2.5550
Epoch 1/1... Steps 5900     Discriminator Loss: 1.3693... Generator Loss: 0.5604
Epoch 1/1... Steps 5910     Discriminator Loss: 0.8866... Generator Loss: 1.0186
Epoch 1/1... Steps 5920     Discriminator Loss: 1.1356... Generator Loss: 0.8208
Epoch 1/1... Steps 5930     Discriminator Loss: 1.1532... Generator Loss: 2.2169
Epoch 1/1... Steps 5940     Discriminator Loss: 1.1682... Generator Loss: 1.0651
Epoch 1/1... Steps 5950     Discriminator Loss: 1.1915... Generator Loss: 0.7941
Epoch 1/1... Steps 5960     Discriminator Loss: 1.1803... Generator Loss: 1.3740
Epoch 1/1... Steps 5970     Discriminator Loss: 1.1095... Generator Loss: 0.7524
Epoch 1/1... Steps 5980     Discriminator Loss: 1.0492... Generator Loss: 0.9260
Epoch 1/1... Steps 5990     Discriminator Loss: 1.5481... Generator Loss: 0.5983
Epoch 1/1... Steps 6000     Discriminator Loss: 1.1998... Generator Loss: 1.1316
Epoch 1/1... Steps 6010     Discriminator Loss: 1.2322... Generator Loss: 0.7371
Epoch 1/1... Steps 6020     Discriminator Loss: 1.5382... Generator Loss: 0.6670
Epoch 1/1... Steps 6030     Discriminator Loss: 1.1130... Generator Loss: 1.2936
Epoch 1/1... Steps 6040     Discriminator Loss: 1.0533... Generator Loss: 0.8958
Epoch 1/1... Steps 6050     Discriminator Loss: 1.1323... Generator Loss: 0.6659
Epoch 1/1... Steps 6060     Discriminator Loss: 0.8903... Generator Loss: 1.2336
Epoch 1/1... Steps 6070     Discriminator Loss: 0.6327... Generator Loss: 1.4994
Epoch 1/1... Steps 6080     Discriminator Loss: 1.0585... Generator Loss: 1.1420
Epoch 1/1... Steps 6090     Discriminator Loss: 0.9368... Generator Loss: 1.1649
Epoch 1/1... Steps 6100     Discriminator Loss: 1.4801... Generator Loss: 1.2984
Epoch 1/1... Steps 6110     Discriminator Loss: 0.5836... Generator Loss: 3.4925
Epoch 1/1... Steps 6120     Discriminator Loss: 1.2042... Generator Loss: 0.8496
Epoch 1/1... Steps 6130     Discriminator Loss: 1.1579... Generator Loss: 0.9069
Epoch 1/1... Steps 6140     Discriminator Loss: 1.1561... Generator Loss: 0.7798
Epoch 1/1... Steps 6150     Discriminator Loss: 0.4905... Generator Loss: 3.5529
Epoch 1/1... Steps 6160     Discriminator Loss: 1.2322... Generator Loss: 1.5124
Epoch 1/1... Steps 6170     Discriminator Loss: 1.3060... Generator Loss: 0.6806
Epoch 1/1... Steps 6180     Discriminator Loss: 1.7230... Generator Loss: 0.3264
Epoch 1/1... Steps 6190     Discriminator Loss: 0.8081... Generator Loss: 1.7118
Epoch 1/1... Steps 6200     Discriminator Loss: 1.3226... Generator Loss: 1.1672
Epoch 1/1... Steps 6210     Discriminator Loss: 1.1117... Generator Loss: 0.8442
Epoch 1/1... Steps 6220     Discriminator Loss: 0.9991... Generator Loss: 0.9296
Epoch 1/1... Steps 6230     Discriminator Loss: 1.1905... Generator Loss: 0.9998
Epoch 1/1... Steps 6240     Discriminator Loss: 1.3236... Generator Loss: 1.1820
Epoch 1/1... Steps 6250     Discriminator Loss: 1.0543... Generator Loss: 1.1775
Epoch 1/1... Steps 6260     Discriminator Loss: 1.1713... Generator Loss: 0.9503
Epoch 1/1... Steps 6270     Discriminator Loss: 1.2956... Generator Loss: 0.6944
Epoch 1/1... Steps 6280     Discriminator Loss: 1.2241... Generator Loss: 0.9145
Epoch 1/1... Steps 6290     Discriminator Loss: 1.2243... Generator Loss: 0.6926
Epoch 1/1... Steps 6300     Discriminator Loss: 1.1129... Generator Loss: 1.0612
Epoch 1/1... Steps 6310     Discriminator Loss: 1.2132... Generator Loss: 1.1455
Epoch 1/1... Steps 6320     Discriminator Loss: 1.3708... Generator Loss: 1.5803
Epoch 1/1... Steps 6330     Discriminator Loss: 1.0767... Generator Loss: 0.7052

Submitting This Project

When submitting this project, make sure to run all the cells before saving the notebook. Save the notebook file as "dlnd_face_generation.ipynb" and save it as a HTML file under "File" -> "Download as". Include the "helper.py" and "problem_unittests.py" files in your submission.